Add support for exporting the WiFi network mode
authorMarcel Holtmann <marcel@holtmann.org>
Sun, 21 Dec 2008 20:23:47 +0000 (21:23 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 21 Dec 2008 20:23:47 +0000 (21:23 +0100)
plugins/supplicant.c
plugins/supplicant.h
plugins/wifi.c

index bca325d..0b84903 100644 (file)
@@ -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;
 }
index 4a746a6..2afd003 100644 (file)
@@ -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;
index dd769b5..f72cdb8 100644 (file)
@@ -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) {