From cbec83f07c92c4e5102a17902380719ac6d6f359 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 21 Dec 2008 21:23:47 +0100 Subject: [PATCH] Add support for exporting the WiFi network mode --- plugins/supplicant.c | 5 +++++ plugins/supplicant.h | 1 + plugins/wifi.c | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/supplicant.c b/plugins/supplicant.c index bca325d..0b84903 100644 --- a/plugins/supplicant.c +++ b/plugins/supplicant.c @@ -655,6 +655,11 @@ static void extract_capabilites(struct supplicant_network *network, { dbus_message_iter_get_basic(value, &network->capabilities); + if (network->capabilities & IEEE80211_CAP_ESS) + network->adhoc = FALSE; + else if (network->capabilities & IEEE80211_CAP_IBSS) + network->adhoc = TRUE; + if (network->capabilities & IEEE80211_CAP_PRIVACY) network->has_wep = TRUE; } diff --git a/plugins/supplicant.h b/plugins/supplicant.h index 4a746a6..2afd003 100644 --- a/plugins/supplicant.h +++ b/plugins/supplicant.h @@ -41,6 +41,7 @@ struct supplicant_network { guint8 *ssid; guint ssid_len; guint16 capabilities; + gboolean adhoc; gboolean has_wep; gboolean has_wpa; gboolean has_rsn; diff --git a/plugins/wifi.c b/plugins/wifi.c index dd769b5..f72cdb8 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -328,6 +328,8 @@ static void scan_result(struct connman_element *device, element = find_pending_element(data, network->identifier); if (element == NULL) { + const char *mode; + element = connman_element_create(temp); element->type = CONNMAN_ELEMENT_TYPE_NETWORK; @@ -339,6 +341,10 @@ static void scan_result(struct connman_element *device, connman_element_add_static_array_property(element, "WiFi.SSID", DBUS_TYPE_BYTE, &network->ssid, network->ssid_len); + mode = (network->adhoc == TRUE) ? "adhoc" : "managed"; + connman_element_add_static_property(element, "WiFi.Mode", + DBUS_TYPE_STRING, &mode); + if (element->wifi.security == NULL) { const char *security; @@ -359,7 +365,7 @@ static void scan_result(struct connman_element *device, connman_element_add_static_property(element, "Strength", DBUS_TYPE_BYTE, &element->strength); - DBG("%s (%s) strength %d", network->identifier, + DBG("%s (%s %s) strength %d", network->identifier, mode, element->wifi.security, element->strength); if (connman_element_register(element, device) < 0) { -- 2.7.4