From 0903668d08045489c2a8fe9422c5a00379481023 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 5 Sep 2009 17:48:26 +0200 Subject: [PATCH] Add quirks for non-mac80211 compliant drivers --- plugins/supplicant.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/supplicant.c b/plugins/supplicant.c index e7356ab..405aac6 100644 --- a/plugins/supplicant.c +++ b/plugins/supplicant.c @@ -175,6 +175,7 @@ struct supplicant_result { struct supplicant_task { int ifindex; char *ifname; + gboolean mac80211; struct connman_device *device; struct connman_network *network; struct connman_network *pending_network; @@ -798,9 +799,12 @@ static int set_network(struct supplicant_task *task, DBUS_TYPE_STRING, &passphrase); } else if (g_ascii_strcasecmp(security, "wep") == 0) { const char *key_mgmt = "NONE"; - const char *auth_alg = "OPEN SHARED"; + const char *auth_alg = "OPEN"; const char *key_index = "0"; + if (task->mac80211 == TRUE) + auth_alg = "OPEN SHARED"; + connman_dbus_dict_append_variant(&dict, "auth_alg", DBUS_TYPE_STRING, &auth_alg); @@ -1702,6 +1706,10 @@ int supplicant_start(struct connman_device *device) goto failed; } + task->mac80211 = connman_inet_is_mac80211(task->ifindex); + if (task->mac80211 == FALSE) + connman_warn("Enabling quirks for unsupported driver"); + task->range = g_try_malloc0(sizeof(struct iw_range)); if (task->range == NULL) { err = -ENOMEM; -- 2.7.4