From patchwork Tue Jul 18 07:07:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saurav Babu X-Patchwork-Id: 789942 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="n0F9cDGe"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xBWW50P26z9sBR for ; Tue, 18 Jul 2017 17:09:37 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=L29rSidyWCftF5yzUxWOerq7Lv1lBta7ejqsk+teRdw=; b=n0F9cDGeiAQFuHw5Bwn5Xm0IIh WBmo+sJM4l5BFHIvKoF5CJodpv/akguDyZf16QzJRDzATV70xDc2GplI9Q225kw1mjm4PzPhCq0Ce yUcj/kZhLhvZlAKK8Q0YOH4ZqBizI8hj3r4IrshH9HLJX914LoAzFKrhxmTcCAGF+OZQosMy2XEPE QHVl4NDhKft60zp1c1xILV4BudMy04QtjJMH683ELIJiyVfAukXEz87wioGaVmQjRLy0Kk0XJBBZQ Lu/WxgPhWm1QMOncLmU/ntGMDNDfVAYsC+GabsjGzxKViXFjgpmn26vgsTTiWgS30EWn6Q+vWrPjP OdLq3I3A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dXMd5-0004ka-DJ; Tue, 18 Jul 2017 07:09:11 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dXMcq-0004WR-Ih for hostap@lists.infradead.org; Tue, 18 Jul 2017 07:09:04 +0000 Received: from epcas2p3.samsung.com (unknown [182.195.41.55]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20170718070835epoutp0289e19ce56910006e6547f0c15b53e305~SWwfquiqM0055800558epoutp02Q for ; Tue, 18 Jul 2017 07:08:35 +0000 (GMT) Received: from epsmges5p3.samsung.com (unknown [182.195.40.76]) by epcas2p3.samsung.com (KnoxPortal) with ESMTP id 20170718070835epcas2p36fadfa760d2b4d063a3292e75974f143~SWwffatzN1872118721epcas2p3p; Tue, 18 Jul 2017 07:08:35 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p3.samsung.com (EPCPMTA) with SMTP id 28.02.04762.CE3BD695; Tue, 18 Jul 2017 16:08:28 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20170718070828epcas5p30ca90761378d18489f23dee70fd089a1~SWwY0posa1629116291epcas5p3G; Tue, 18 Jul 2017 07:08:28 +0000 (GMT) Received: from epsmgmsp1.samsung.com (unknown [182.195.42.97]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20170718070828epsmtrp21be86d063320eacf3b4e305a5b7fce5c~SWwYwSvBH3090930909epsmtrp2_; Tue, 18 Jul 2017 07:08:28 +0000 (GMT) X-AuditID: b6c32a2e-f79746d00000129a-d1-596db3eca10e Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmsp1.samsung.com (Symantec Messaging Gateway) with SMTP id 8C.0F.04803.1B3BD695; Tue, 18 Jul 2017 16:07:29 +0900 (KST) Received: from localhost.localdomain (unknown [107.109.228.77]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20170718070826epsmtip25cc7ef6136127bf3a62368b51fa80143~SWwXeknfq0651006510epsmtip2I; Tue, 18 Jul 2017 07:08:26 +0000 (GMT) From: Saurav Babu To: hostap@lists.infradead.org Subject: [PATCHv2 5/7] dbus: Added dbus signal MeshPeerDisconnected Date: Tue, 18 Jul 2017 12:37:55 +0530 Message-Id: <1500361677-25313-6-git-send-email-saurav.babu@samsung.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1500361677-25313-1-git-send-email-saurav.babu@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDKsWRmVeSWpSXmKPExsWy7bCmlu6bzbmRBrM3iVusfZRmcetGP4vF 1GNT2R2YPTYvqffo27KKMYApKtUmIzUxJbVIITUvOT8lMy/dVsk7ON453tTMwFDX0NLCXEkh LzE31VbJxSdA1y0zB2iFkkJZYk4pUCggsbhYSd/Opii/tCRVISO/uMRWKdrQ0EjP0MBcz8jI SM/ENNbKyBSoJCE149TEJ4wFfdoVfRtmsDYwblPuYuTkkBAwkXi97TYbhC0mceHeeiCbi0NI YCmjxPYfZ6CcT4wSp2fvYYVzdt9vZoFpf7f3EVRiJ6PElLV3mSGcL4wSe9//A6tiE9CWWLvr ETuILSIgJ3Hy5QVmEJtZwFHi+sObYHFhAWeJD9PXgdksAqoSrW0/WUFsXgF3iQ0TtrBDbAPq PTYZKM7BwSngIfHopRDILgmBt6wS7Se2skLUuEic+vSQEcIWlnh1HKZXSuLzu71sEA3NjBKH tr9jhHB6GCXenH0JVWUv0XZsNwvIBmYBTYn1u/QhwrYSX75sYII4mk+i9/cTJoi4qsTUr2eY QcolBHglOtqEIMIeEvt/LmWDCDtKLD3PBQmTw4wSG/6/ZZzAKD8LYcECRsZVjGKpBcW56anF pgXGesWJucWleel6yfm5mxjBKUlLbwfjvwXehxgFOBiVeHgN9uVECrEmlhVX5h5ilOBgVhLh FdmQGynEm5JYWZValB9fVJqTWnyI0RQYkhOZpUST84HpMq8k3tDE0sDE1MzUxNzQwlRJnFdj 5bUIIYH0xJLU7NTUgtQimD4mDk6pBsbOQ1n72T9XvTn91XTjp+fzI5Y1zzG/697W+Gtlfeya x9aL//mcEDRPk5vifeHNGjvFhAOHY5Ov159tbOWtd2SeUeEqdd3MVFPIuPm6Ze6asvVtV9hf yuR2l+Xsi3xwiSeUWyr0jFdcPtMUQ744v0bD0i8T1vefuiNf899LkCE8wvdkcL/uTSWW4oxE Qy3mouJEAGnGlSFfAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpnluLIzCtJLcpLzFFi42LZdlhJXnfj5txIg+MnTCzWPkqzuHWjn8Vi 6rGp7A7MHpuX1Hv0bVnFGMAUxWWTkpqTWZZapG+XwJVxauITxoI+7Yq+DTNYGxi3KXcxcnJI CJhIvNv7iBXCFpO4cG89WxcjF4eQwHZGiWWH17BAJKQl9l/fB2ULS6z895wdougTo0TPmWds IAk2AW2JtbsesYPYIgJyEidfXmAGsZkFnCU2XD4FtkEYyP4wfR1YDYuAqkRr20+wOK+Au8SG CVvYIRYA9R6bDBTn4OAU8JB49FIIJCwkkC/Rtm86ywRG/gWMDKsYRVMLinPTc4sLDPWKE3OL S/PS9ZLzczcxgoNHK3EH47oZ4YcYBTgYlXh4b+zOiRRiTSwrrsw9xCjBwawkwiuyITdSiDcl sbIqtSg/vqg0J7X4EKM0B4uSOO+t6g0RQgLpiSWp2ampBalFMFkmDk6pBkYl8TeB+r48t2Vf JhkqiLNXPOI9eWH/5B0TDS/Mijg8486cqFipesEf2Ze2XU4TDaoQfds+7VPuG5MjGsuOsknz WauwMK6u737TePXZ83uTbnCYHhdfot23qP6qYd33E5J+EVEHSqfeuff57BIzzjhhhdWz7pVs eLKVNaHIYNX0F5cZ0wM+5OsosRRnJBpqMRcVJwIAN1QTMBoCAAA= X-CMS-MailID: 20170718070828epcas5p30ca90761378d18489f23dee70fd089a1 X-Msg-Generator: CA X-Sender-IP: 182.195.40.14 X-Local-Sender: =?UTF-8?B?U2F1cmF2IEJhYnUbU1JJLURlbGhpLUFkdmFuY2VkIFNXIFRl?= =?UTF-8?B?YW0b7IK87ISx7KCE7J6QG0xlYWQgRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?U2F1cmF2IEJhYnUbU1JJLURlbGhpLUFkdmFuY2VkIFNXIFRl?= =?UTF-8?B?YW0bU2Ftc3VuZyBFbGVjdHJvbmljcxtMZWFkIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG1NXQUhRG0MxMElEMDJJRDAyODExMQ==?= X-MTR: 20170718070828epcas5p30ca90761378d18489f23dee70fd089a1 CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20170718070828epcas5p30ca90761378d18489f23dee70fd089a1 X-RootMTR: 20170718070828epcas5p30ca90761378d18489f23dee70fd089a1 References: <1496454361.25646.4.camel@redhat.com> <1500361677-25313-1-git-send-email-saurav.babu@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170718_000857_052268_C31AC33A X-CRM114-Status: UNSURE ( 9.16 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -6.9 (------) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-6.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [203.254.224.25 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Saurav Babu , sachin.dev@samsung.com MIME-Version: 1.0 Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org This is similar to the control interface event MESH-PEER-DISCONNECTED Signed-off-by: Saurav Babu --- doc/dbus.doxygen | 9 +++++++++ wpa_supplicant/dbus/dbus_new.c | 38 ++++++++++++++++++++++++++++++++++++++ wpa_supplicant/dbus/dbus_new.h | 8 ++++++++ wpa_supplicant/mesh_mpm.c | 3 +++ wpa_supplicant/notify.c | 11 +++++++++++ wpa_supplicant/notify.h | 2 ++ 6 files changed, 71 insertions(+) diff --git a/doc/dbus.doxygen b/doc/dbus.doxygen index 6f2eeaf..f9244a5 100644 --- a/doc/dbus.doxygen +++ b/doc/dbus.doxygen @@ -2287,6 +2287,15 @@ Interface for performing Mesh operations.
A dictionary containing information of connected Mesh Peer.
+
  • +

    MeshPeerDisconnected ( a{sv} : args )

    +

    +

    Arguments

    +
    +
    a{sv} : args
    +
    A dictionary containing information of disconnected Mesh Peer.
    +
    +
  • */ diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c index 7ca9605..9c9208a 100644 --- a/wpa_supplicant/dbus/dbus_new.c +++ b/wpa_supplicant/dbus/dbus_new.c @@ -887,6 +887,38 @@ void wpas_dbus_signal_mesh_peer_connected(struct wpa_supplicant *wpa_s, dbus_connection_send(iface->con, msg, NULL); dbus_message_unref(msg); } + +void wpas_dbus_signal_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int reason) +{ + struct wpas_dbus_priv *iface; + DBusMessage *msg; + DBusMessageIter iter, dict_iter; + + iface = wpa_s->global->dbus; + + /* Do nothing if the control interface is not turned on */ + if (iface == NULL || !wpa_s->dbus_new_path) + return; + + msg = dbus_message_new_signal(wpa_s->dbus_new_path, + WPAS_DBUS_NEW_IFACE_MESH, + "MeshPeerDisconnected"); + if (msg == NULL) + return; + + dbus_message_iter_init_append(msg, &iter); + if (!wpa_dbus_dict_open_write(&iter, &dict_iter) || + !wpa_dbus_dict_append_byte_array(&dict_iter, "PeerAddress", + (const char *) peer_addr, + ETH_ALEN) || + !wpa_dbus_dict_append_int32(&dict_iter, "DisconnectReason", reason) || + !wpa_dbus_dict_close_write(&iter, &dict_iter)) + wpa_printf(MSG_ERROR, "dbus: Failed to construct signal"); + else + dbus_connection_send(iface->con, msg, NULL); + dbus_message_unref(msg); +} #endif /* CONFIG_MESH */ void wpas_dbus_signal_certification(struct wpa_supplicant *wpa_s, @@ -3737,6 +3769,12 @@ static const struct wpa_dbus_signal_desc wpas_dbus_interface_signals[] = { END_ARGS } }, + { "MeshPeerDisconnected", WPAS_DBUS_NEW_IFACE_MESH, + { + { "args", "a{sv}", ARG_OUT }, + END_ARGS + } + }, #endif /* CONFIG_MESH */ { NULL, NULL, { END_ARGS } } }; diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h index df7da3f..19ccc39 100644 --- a/wpa_supplicant/dbus/dbus_new.h +++ b/wpa_supplicant/dbus/dbus_new.h @@ -247,6 +247,8 @@ void wpas_dbus_signal_mesh_group_removed(struct wpa_supplicant *wpa_s, u8 *meshid, u8 meshid_len, int reason); void wpas_dbus_signal_mesh_peer_connected(struct wpa_supplicant *wpa_s, const u8 *peer_addr); +void wpas_dbus_signal_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int reason); #else /* CONFIG_CTRL_IFACE_DBUS_NEW */ @@ -580,6 +582,12 @@ void wpas_dbus_signal_mesh_peer_connected(struct wpa_supplicant *wpa_s, { } +static inline +void wpas_dbus_signal_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int reason) +{ +} + #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */ #endif /* CTRL_IFACE_DBUS_H_NEW */ diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c index 6106b07..cf7107e 100644 --- a/wpa_supplicant/mesh_mpm.c +++ b/wpa_supplicant/mesh_mpm.c @@ -1013,6 +1013,9 @@ static void mesh_mpm_fsm(struct wpa_supplicant *wpa_s, struct sta_info *sta, wpa_msg(wpa_s, MSG_INFO, MESH_PEER_DISCONNECTED MACSTR, MAC2STR(sta->addr)); + /* Send DBUS event */ + wpas_notify_mesh_peer_disconnected(wpa_s, sta->addr, reason); + hapd->num_plinks--; mesh_mpm_send_plink_action(wpa_s, sta, diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index 574b066..e993730 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -883,3 +883,14 @@ void wpas_notify_mesh_peer_connected(struct wpa_supplicant *wpa_s, wpas_dbus_signal_mesh_peer_connected(wpa_s, peer_addr); #endif /* CONFIG_MESH */ } + +void wpas_notify_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int reason_code) +{ + if (wpa_s->p2p_mgmt) + return; + +#ifdef CONFIG_MESH + wpas_dbus_signal_mesh_peer_disconnected(wpa_s, peer_addr, reason_code); +#endif /* CONFIG_MESH */ +} diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index 020eaaa..2dde3ac 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -147,5 +147,7 @@ void wpas_notify_mesh_group_removed(struct wpa_supplicant *wpa_s, u8 *meshid, u8 meshid_len, int reason_code); void wpas_notify_mesh_peer_connected(struct wpa_supplicant *wpa_s, const u8 *peer_addr); +void wpas_notify_mesh_peer_disconnected(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int reason_code); #endif /* NOTIFY_H */