summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-01-14 18:59:11 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-02 18:45:35 +0100
commitfe35ac1aaf5897104963012fef42573f391ff2b4 (patch)
treefd022b6bb2392be1639567d44744d069f9e16f2c /gsupplicant
parent84ca3da23a5d84b16ec13d2f56ff49be67b1669c (diff)
downloadconnman-fe35ac1aaf5897104963012fef42573f391ff2b4.tar.gz
connman-fe35ac1aaf5897104963012fef42573f391ff2b4.tar.bz2
connman-fe35ac1aaf5897104963012fef42573f391ff2b4.zip
gsupplicant: Add network mode support
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/gsupplicant.h1
-rw-r--r--gsupplicant/supplicant.c25
2 files changed, 26 insertions, 0 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index 0df86408..c2462f4b 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -74,6 +74,7 @@ typedef enum {
G_SUPPLICANT_MODE_UNKNOWN,
G_SUPPLICANT_MODE_INFRA,
G_SUPPLICANT_MODE_IBSS,
+ G_SUPPLICANT_MODE_MASTER,
} GSupplicantMode;
typedef enum {
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 8c91a839..2e178688 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -244,6 +244,8 @@ static const char *mode2string(GSupplicantMode mode)
return "managed";
case G_SUPPLICANT_MODE_IBSS:
return "adhoc";
+ case G_SUPPLICANT_MODE_MASTER:
+ return "ap";
}
return NULL;
@@ -2651,6 +2653,27 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid)
DBUS_TYPE_STRING, &key_mgmt);
}
+static void add_network_mode(DBusMessageIter *dict, GSupplicantSSID *ssid)
+{
+ dbus_uint32_t mode;
+
+ switch (ssid->mode) {
+ case G_SUPPLICANT_MODE_UNKNOWN:
+ case G_SUPPLICANT_MODE_INFRA:
+ mode = 0;
+ break;
+ case G_SUPPLICANT_MODE_IBSS:
+ mode = 1;
+ break;
+ case G_SUPPLICANT_MODE_MASTER:
+ mode = 2;
+ break;
+ }
+
+ supplicant_dbus_dict_append_basic(dict, "mode",
+ DBUS_TYPE_UINT32, &mode);
+}
+
static void interface_add_network_params(DBusMessageIter *iter, void *user_data)
{
DBusMessageIter dict;
@@ -2663,6 +2686,8 @@ static void interface_add_network_params(DBusMessageIter *iter, void *user_data)
supplicant_dbus_dict_append_basic(&dict, "scan_ssid",
DBUS_TYPE_UINT32, &scan_ssid);
+ add_network_mode(&dict, ssid);
+
add_network_security(&dict, ssid);
supplicant_dbus_dict_append_fixed_array(&dict, "ssid",