summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-21 21:23:47 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-21 21:23:47 +0100
commitcbec83f07c92c4e5102a17902380719ac6d6f359 (patch)
tree54eb5241c37087528e818873d0abeb75fdd82e35 /plugins
parentb93f19856e9a31a7615496d90133c4f2effdb4fa (diff)
downloadconnman-cbec83f07c92c4e5102a17902380719ac6d6f359.tar.gz
connman-cbec83f07c92c4e5102a17902380719ac6d6f359.tar.bz2
connman-cbec83f07c92c4e5102a17902380719ac6d6f359.zip
Add support for exporting the WiFi network mode
Diffstat (limited to 'plugins')
-rw-r--r--plugins/supplicant.c5
-rw-r--r--plugins/supplicant.h1
-rw-r--r--plugins/wifi.c8
3 files changed, 13 insertions, 1 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index bca325de..0b84903e 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 4a746a64..2afd003b 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 dd769b57..f72cdb8e 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) {