[PATCH 2/2] dbus-signal for IBSS-RSN-CONNECTED

Avichal Agarwal avichal.a at samsung.com
Tue Jul 12 05:05:24 PDT 2016


From 8eb6908732c5e08c803bbffffab156af6acdcfa8 Mon Sep 17 00:00:00 2001
From: Avichal Agarwal <avichal.a at samsung.com>
Date: Tue, 12 Jul 2016 17:21:24 +0530
Subject: [PATCH 2/2] dbus-signal for IBSS-RSN-CONNECTED

this patch will send a dbus signal IbssRsnConnected
when two ibss-rsn peers will join each other successfully.
this signal will send the address of peer type array of bytes.

Signed-off-by: Avichal Agarwal <avichal.a at samsung.com>
---
 wpa_supplicant/dbus/dbus_new.c                     |   37 ++++++++
 wpa_supplicant/dbus/dbus_new.h                     |    5 +-
 wpa_supplicant/ibss_rsn.c                          |    3 +-
 wpa_supplicant/notify.c                            |    6 ++
 wpa_supplicant/notify.h                            |    3 +
 5 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
index 8fa03bb..1300ad5 100644
--- a/wpa_supplicant/dbus/dbus_new.c
+++ b/wpa_supplicant/dbus/dbus_new.c
@@ -1954,6 +1954,35 @@ void wpas_dbus_signal_p2p_invitation_received(struct wpa_supplicant *wpa_s,
 
 #endif /* CONFIG_P2P */
 
+#ifdef CONFIG_IBSS_RSN

+void wpas_dbus_signal_ibss_rsn_connected(struct wpa_supplicant *wpa_s,

+                                const u8 *peer)

+{

+        struct wpas_dbus_priv *iface;

+        DBusMessage *msg;

+        DBusMessageIter iter,array_iter;

+        iface = wpa_s->global->dbus;

+        /* Do nothing if the control interface is not turned on */

+        if (iface == NULL)

+                return;

+        msg = dbus_message_new_signal(wpa_s->dbus_new_path,

+                                      WPAS_DBUS_NEW_IFACE_INTERFACE,

+                                      "IbssRsnConnected");

+        if (msg == NULL)

+                return;

+        dbus_message_iter_init_append(msg, &iter);

+	if(!dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,

+                                              DBUS_TYPE_BYTE_AS_STRING,

+                                              &array_iter) ||

+            !dbus_message_iter_append_fixed_array(&array_iter, DBUS_TYPE_BYTE,

+                                                  &peer, 6) ||

+            !dbus_message_iter_close_container(&iter, &array_iter))

+		goto nomem;

+        dbus_connection_send(iface->con, msg, NULL);

+nomem:

+        dbus_message_unref(msg);

+}

+#endif /*CONFIG_IBSS_RSN*/
 
 /**
  * wpas_dbus_signal_prop_changed - Signals change of property
@@ -3548,6 +3577,14 @@ static const struct wpa_dbus_signal_desc wpas_dbus_interface_signals[] = {
 		  END_ARGS
 	  }
 	},
+#ifdef CONFIG_IBSS_RSN

+	{ "IbssRsnConnected",WPAS_DBUS_NEW_IFACE_INTERFACE,

+	  {

+		 { "peer","ay",ARG_OUT },

+		 END_ARGS

+	  }

+	},

+#endif
 	{ NULL, NULL, { END_ARGS } }
 };
 
diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h
index d64fcee..38f521d 100644
--- a/wpa_supplicant/dbus/dbus_new.h
+++ b/wpa_supplicant/dbus/dbus_new.h
@@ -237,7 +237,10 @@ void wpas_dbus_signal_p2p_invitation_received(struct wpa_supplicant *wpa_s,
 					      const u8 *sa, const u8 *dev_addr,
 					      const u8 *bssid, int id,
 					      int op_freq);
-
+#ifdef CONFIG_IBSS_RSN

+void wpas_dbus_signal_ibss_rsn_connected(struct wpa_supplicant *wpa_s,

+                               const u8 *peer);

+#endif /*CONFIG_IBSS_RSN*/
 #else /* CONFIG_CTRL_IFACE_DBUS_NEW */
 
 static inline int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s)
diff --git a/wpa_supplicant/ibss_rsn.c b/wpa_supplicant/ibss_rsn.c
index c00db31..549995d 100644
--- a/wpa_supplicant/ibss_rsn.c
+++ b/wpa_supplicant/ibss_rsn.c
@@ -19,7 +19,7 @@
 #include "driver_i.h"
 #include "common/ieee802_11_defs.h"
 #include "ibss_rsn.h"
-
+#include "notify.h"
 
 static void ibss_rsn_auth_timeout(void *eloop_ctx, void *timeout_ctx);
 
@@ -133,6 +133,7 @@ static void ibss_check_rsn_completed(struct ibss_rsn_peer *peer)
 	peer->authentication_status |= IBSS_RSN_REPORTED_PTK;
 	wpa_msg(wpa_s, MSG_INFO, IBSS_RSN_COMPLETED MACSTR,
 		MAC2STR(peer->addr));
+	wpas_notify_ibssrsn_connected(wpa_s,peer->addr);
 }
 
diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c
index 67e36ae..5cce236 100644
--- a/wpa_supplicant/notify.c
+++ b/wpa_supplicant/notify.c
@@ -148,6 +148,12 @@ void wpas_notify_assoc_status_code(struct wpa_supplicant *wpa_s)
 	wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_ASSOC_STATUS_CODE);
 }
 
+#ifdef CONFIG_IBSS_RSN

+void wpas_notify_ibssrsn_connected(struct wpa_supplicant *wpa_s,const u8 *peer)

+{

+	wpas_dbus_signal_ibss_rsn_connected(wpa_s,peer);

+}

+#endif /*CONFIG_IBSS_RSN*/
 
 void wpas_notify_network_changed(struct wpa_supplicant *wpa_s)
 {
diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h
index 8cce0f3..d90c4f3 100644
--- a/wpa_supplicant/notify.h
+++ b/wpa_supplicant/notify.h
@@ -141,5 +141,8 @@ void wpas_notify_network_type_changed(struct wpa_supplicant *wpa_s,
 void wpas_notify_p2p_invitation_received(struct wpa_supplicant *wpa_s,
 					 const u8 *sa, const u8 *go_dev_addr,
 					 const u8 *bssid, int id, int op_freq);
+#ifdef CONFIG_IBSS_RSN

+void wpas_notify_ibssrsn_connected(struct wpa_supplicant *wpa_s, const u8 *peer);

+#endif /*CONFIG_IBSS_RSN*/
 
 #endif /* NOTIFY_H */
-- 
1.7.9.5


More information about the Hostap mailing list