>From 01672a9a604a4ebee43194f84b85f6b6cc022ecd Mon Sep 17 00:00:00 2001
From: Martin Xu <[email protected]>
Date: Thu, 9 Jul 2009 18:24:34 -0400
Subject: [PATCH 1/2] add task_connect function to supplicant.c
---
plugins/supplicant.c | 62 +++++++++++++++++++++++++------------------------
1 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index 945223b..cf8a492 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -1388,6 +1388,37 @@ static enum supplicant_state string2state(const char
*state)
return WPA_INVALID;
}
+static int task_connect(struct supplicant_task *task)
+{
+ const char *address, *security, *passphrase;
+ const void *ssid;
+ unsigned int ssid_len;
+
+ address = connman_network_get_string(task->network, "Address");
+ security = connman_network_get_string(task->network, "WiFi.Security");
+ passphrase = connman_network_get_string(task->network,
"WiFi.Passphrase");
+
+ ssid = connman_network_get_blob(task->network, "WiFi.SSID", &ssid_len);
+
+ DBG("address %s security %s passphrase %s",
+ address, security, passphrase);
+
+ if (security == NULL && passphrase == NULL)
+ return -EINVAL;
+
+ if (g_str_equal(security, "none") == FALSE && passphrase == NULL)
+ return -EINVAL;
+
+ add_network(task);
+
+ select_network(task);
+ disable_network(task);
+
+ set_network(task, ssid, ssid_len, address, security, passphrase);
+
+ enable_network(task);
+}
+
static void state_change(struct supplicant_task *task, DBusMessage *msg)
{
DBusError error;
@@ -1615,28 +1646,10 @@ int supplicant_scan(struct connman_device *device)
int supplicant_connect(struct connman_network *network)
{
struct supplicant_task *task;
- const char *address, *security, *passphrase;
- const void *ssid;
- unsigned int ssid_len;
int index;
DBG("network %p", network);
- address = connman_network_get_string(network, "Address");
- security = connman_network_get_string(network, "WiFi.Security");
- passphrase = connman_network_get_string(network, "WiFi.Passphrase");
-
- ssid = connman_network_get_blob(network, "WiFi.SSID", &ssid_len);
-
- DBG("address %s security %s passphrase %s",
- address, security, passphrase);
-
- if (security == NULL && passphrase == NULL)
- return -EINVAL;
-
- if (g_str_equal(security, "none") == FALSE && passphrase == NULL)
- return -EINVAL;
-
index = connman_network_get_index(network);
task = find_task_by_index(index);
@@ -1645,18 +1658,7 @@ int supplicant_connect(struct connman_network *network)
task->network = connman_network_ref(network);
- add_network(task);
-
- select_network(task);
- disable_network(task);
-
- set_network(task, ssid, ssid_len, address, security, passphrase);
-
- enable_network(task);
-
- connman_network_set_associating(task->network, TRUE);
-
- return 0;
+ return task_connect(task);
}
int supplicant_disconnect(struct connman_network *network)
--
1.6.1.3
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman