summaryrefslogtreecommitdiff
path: root/src/iface.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-04-04 08:13:06 +0200
committerMarcel Holtmann <marcel@holtmann.org>2008-04-04 08:13:06 +0200
commitada412ae85949172658aadfc80baf02b8f4a1736 (patch)
tree462eb6f322d290b4e7ecdf649753a4a0f71a5822 /src/iface.c
parent4b7adf27379eb4652c650a8882333c77e9d1a07b (diff)
downloadconnman-ada412ae85949172658aadfc80baf02b8f4a1736.tar.gz
connman-ada412ae85949172658aadfc80baf02b8f4a1736.tar.bz2
connman-ada412ae85949172658aadfc80baf02b8f4a1736.zip
Improve selecting of networks
Diffstat (limited to 'src/iface.c')
-rw-r--r--src/iface.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/iface.c b/src/iface.c
index a1e136df..27bae8f1 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;