From ada412ae85949172658aadfc80baf02b8f4a1736 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 4 Apr 2008 08:13:06 +0200 Subject: [PATCH] Improve selecting of networks --- src/iface-storage.c | 4 ---- src/iface.c | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/iface-storage.c b/src/iface-storage.c index d73ef6a..ec59490 100644 --- a/src/iface-storage.c +++ b/src/iface-storage.c @@ -62,11 +62,7 @@ char *__connman_iface_find_passphrase(struct connman_iface *iface, list = g_key_file_get_string_list(keyfile, GROUP_CONFIG, "KnownNetworks", &list_len, NULL); for (i = 0; i < list_len; i++) { - DBG("known network %s", list[i]); - if (g_str_equal(list[i], network) == TRUE) { - DBG("found network %s", network); - result = g_key_file_get_string(keyfile, network, "PSK", NULL); if (result == NULL) diff --git a/src/iface.c b/src/iface.c index a1e136d..27bae8f 100644 --- a/src/iface.c +++ b/src/iface.c @@ -850,17 +850,25 @@ static DBusMessage *select_network(DBusConnection *conn, struct connman_iface *iface = data; DBusMessage *reply; const char *network; + gchar *passphrase; DBG("conn %p", conn); dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &network, DBUS_TYPE_INVALID); + passphrase = __connman_iface_find_passphrase(iface, network); + if (passphrase == NULL) + goto done; + g_free(iface->network.identifier); iface->network.identifier = g_strdup(network); + g_free(iface->network.passphrase); + iface->network.passphrase = passphrase; __connman_iface_connect(iface, &iface->network); +done: reply = dbus_message_new_method_return(msg); if (reply == NULL) return NULL; -- 2.7.4