>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

Reply via email to