Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(756)

Unified Diff: plugins/newwifi.c

Issue 6609007: flimflam: add "psk" security as a way to specify either "wpa" or "rsn" (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/flimflam.git@master
Patch Set: add backwards compat Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/wifi.h ('k') | src/service.c » ('j') | src/service.c » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: plugins/newwifi.c
diff --git a/plugins/newwifi.c b/plugins/newwifi.c
index 7ebc3b691cc941c2a27c9fc4cbb24f325c3254af..cfdd250dfa9e75258da594016af90948e0e9bae6 100644
--- a/plugins/newwifi.c
+++ b/plugins/newwifi.c
@@ -810,21 +810,23 @@ static void append_8021x(DBusMessageIter *dict,
}
}
-static int check_wpa(struct connman_network *network)
+static int check_psk(struct connman_network *network)
{
const char *passphrase =
connman_network_get_string(network, "WiFi.Passphrase");
return (passphrase == NULL || strlen(passphrase) == 0 ? -EINVAL : 0);
}
-static void append_wpa(DBusMessageIter *dict,
- struct connman_network *network)
+static void append_psk(DBusMessageIter *dict,
+ struct connman_network *network, const char *proto)
{
const char *key_mgmt = "WPA-PSK";
const char *passphrase;
connman_dbus_dict_append_variant(dict, "key_mgmt",
DBUS_TYPE_STRING, &key_mgmt);
+ connman_dbus_dict_append_variant(dict, "proto",
+ DBUS_TYPE_STRING, &proto);
passphrase = connman_network_get_string(network, "WiFi.Passphrase");
connman_dbus_dict_append_variant(dict, "psk",
@@ -899,9 +901,12 @@ static void append_network_properties(struct supplicant_task *task,
security = connman_network_get_string(network, "WiFi.Security");
if (g_ascii_strcasecmp(security, "802_1x") == 0) {
append_8021x(&dict, network);
- } else if (g_ascii_strcasecmp(security, "wpa") == 0 ||
- g_ascii_strcasecmp(security, "rsn") == 0) {
- append_wpa(&dict, network);
+ } else if (g_ascii_strcasecmp(security, "psk") == 0) {
+ append_psk(&dict, network, "WPA RSN");
+ } else if (g_ascii_strcasecmp(security, "wpa") == 0) {
+ append_psk(&dict, network, "WPA");
+ } else if (g_ascii_strcasecmp(security, "rsn") == 0) {
+ append_psk(&dict, network, "RSN");
} else if (g_ascii_strcasecmp(security, "wep") == 0) {
append_wep(&dict, network);
} else {
@@ -1349,71 +1354,6 @@ static int interface_scan(struct supplicant_task *task)
__func__, "interface scan");
}
-static struct {
- char *name;
- char *value;
-} special_ssid[] = {
- { "<hidden>", "hidden" },
- { "default", "linksys" },
- { "wireless" },
- { "linksys" },
- { "netgear" },
- { "dlink" },
- { "2wire" },
- { "compaq" },
- { "tsunami" },
- { "comcomcom", "3com" },
- { "3Com", "3com" },
- { "Symbol", "symbol" },
- { "Motorola", "motorola" },
- { "Wireless" , "wireless" },
- { "WLAN", "wlan" },
- { }
-};
-
-static char *build_group(const char *addr, const char *name,
- const unsigned char *ssid, unsigned int ssid_len,
- const char *mode, const char *security)
-{
- GString *str;
- unsigned int i;
-
- if (addr == NULL)
- return NULL;
-
- str = g_string_sized_new((ssid_len * 2) + 24);
- if (str == NULL)
- return NULL;
-
- if (ssid == NULL) {
- g_string_append_printf(str, "hidden_%s", addr);
- goto done;
- }
-
- for (i = 0; special_ssid[i].name; i++) {
- if (g_strcmp0(special_ssid[i].name, name) == 0) {
- if (special_ssid[i].value == NULL)
- g_string_append_printf(str, "%s_%.*s",
- name, 2*ETH_ALEN, addr);
- else
- g_string_append_printf(str, "%s_%.*s",
- special_ssid[i].value, 2*ETH_ALEN, addr);
- goto done;
- }
- }
-
- if (ssid_len > 0 && ssid[0] != '\0') {
- for (i = 0; i < ssid_len; i++)
- g_string_append_printf(str, "%02x", ssid[i]);
- } else
- g_string_append_printf(str, "hidden_%.*s", 2*ETH_ALEN, addr);
-
-done:
- g_string_append_printf(str, "_%s_%s", mode, security);
-
- return g_string_free(str, FALSE);
-}
-
/*
* Construct the identifier for a network from the bssid and ssid.
* We intentionally construct a valid d-bus object path because
@@ -1834,7 +1774,7 @@ static struct connman_network *add_bss(struct supplicant_task *task,
struct connman_network *network;
char *group;
- group = build_group(bss->path, bss->name,
+ group = connman_wifi_build_group(bss->path, bss->name,
bss->ssid, bss->ssid_len, bss->mode, bss->security);
network = connman_device_get_network(task->device, bss->path);
@@ -2667,9 +2607,10 @@ static int task_connect(struct supplicant_task *task,
err = -EINVAL;
else if (g_ascii_strcasecmp(security, "802_1x") == 0)
err = check_8021x(network);
- else if (g_ascii_strcasecmp(security, "wpa") == 0 ||
+ else if (g_ascii_strcasecmp(security, "psk") == 0 ||
+ g_ascii_strcasecmp(security, "wpa") == 0 ||
g_ascii_strcasecmp(security, "rsn") == 0)
- err = check_wpa(network);
+ err = check_psk(network);
else if (g_ascii_strcasecmp(security, "wep") == 0)
err = check_wep(network);
if (err != 0) {
« no previous file with comments | « include/wifi.h ('k') | src/service.c » ('j') | src/service.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698