summaryrefslogtreecommitdiff
path: root/gsupplicant/supplicant.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-02-03 00:38:37 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-03 00:38:37 +0100
commit609ea53e487a55298d7a168e616ab9bb91214084 (patch)
tree7ad21c3c5263586c55986ed9979f9328d32b98c9 /gsupplicant/supplicant.c
parent779bdfff2ace6ac14c1d472a1522481d7491f243 (diff)
downloadconnman-609ea53e487a55298d7a168e616ab9bb91214084.tar.gz
connman-609ea53e487a55298d7a168e616ab9bb91214084.tar.bz2
connman-609ea53e487a55298d7a168e616ab9bb91214084.zip
gsupplicant: Set WPA protocol
Diffstat (limited to 'gsupplicant/supplicant.c')
-rw-r--r--gsupplicant/supplicant.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 3dc50913..97e5858f 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -2726,6 +2726,39 @@ static void add_network_security_ciphers(DBusMessageIter *dict,
g_free(group);
}
+static void add_network_security_proto(DBusMessageIter *dict,
+ GSupplicantSSID *ssid)
+{
+ unsigned int protocol, i;
+ char *proto;
+ char *protos[3];
+
+ protocol = ssid->protocol;
+
+ if (protocol == 0)
+ return;
+
+ i = 0;
+
+ if (protocol & G_SUPPLICANT_PROTO_RSN)
+ protos[i++] = "RSN";
+
+ if (protocol & G_SUPPLICANT_PROTO_WPA)
+ protos[i++] = "WPA";
+
+ protos[i] = NULL;
+
+ proto = g_strjoinv(" ", protos);
+
+ SUPPLICANT_DBG("proto %s", proto);
+
+ supplicant_dbus_dict_append_basic(dict, "proto",
+ DBUS_TYPE_STRING,
+ &proto);
+
+ g_free(proto);
+}
+
static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid)
{
char *key_mgmt;
@@ -2740,10 +2773,12 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid)
case G_SUPPLICANT_SECURITY_PSK:
key_mgmt = "WPA-PSK";
add_network_security_psk(dict, ssid);
+ add_network_security_proto(dict, ssid);
break;
case G_SUPPLICANT_SECURITY_IEEE8021X:
key_mgmt = "WPA-EAP";
add_network_security_eap(dict, ssid);
+ add_network_security_proto(dict, ssid);
break;
}