[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