This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 include/element.h      |    4 -
 plugins/connman.policy |    9 +
 plugins/dhclient.c     |   15 --
 plugins/ethernet.c     |    9 -
 plugins/rtnllink.c     |   17 --
 plugins/supplicant.c   |   61 +++++--
 plugins/supplicant.h   |    8 +-
 plugins/wifi.c         |   77 +++++----
 src/connman.h          |    8 +
 src/dbus.c             |    9 +
 src/element.c          |  424 ++++++++++++++++++++++++++++++------------------
 src/storage.c          |    4 +-
 test/Makefile.am       |    6 +-
 test/disable-device    |   14 +-
 test/enable-device     |   14 +-
 test/set-passphrase    |   31 ++++
 16 files changed, 431 insertions(+), 279 deletions(-)

New commits:
commit 27de961c1576ac7588b100e62b9c3fb55019ed5c
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 14:59:14 2008 +0100

    Replace more unallowed characters

commit 0389ef2cd3b8836959c67895e3fee5802d8f64ea
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:51:19 2008 +0100

    Disable strength and noise properties for now

commit 7ec68330d2e0c729ad37b0f724b7d2f93653246b
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:50:47 2008 +0100

    Don't overwrite security settings if already set

commit 16d4d541a41c4829c4e72602327b5157f4bb35cb
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:34:33 2008 +0100

    Add script for setting a passphrase

commit b9d78ccae06676a1cc82b1555bc14fb6ecfcdae0
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:27:51 2008 +0100

    Change test scripts to use Powered property

commit 13006c2850b7017da698a457c48726777db68234
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:25:34 2008 +0100

    Allow setting of Powered property

commit 435d94a40c61c6dd73214afe7a7d989c0b61264a
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:15:53 2008 +0100

    Set the correct key management for WEP protected networks

commit b481384506a522d3172e25d71456e0f78a9c0268
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 13:04:11 2008 +0100

    Propagate WiFi.Security information properly

commit cfce6f1cea9657772f1846ab230f620ccce84aca
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 01:22:10 2008 +0100

    Add signal strength and noise properties

commit 53820bec61c24198f7381a27524519ca24bb699a
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 01:12:44 2008 +0100

    Add support for static byte and integer properties

commit 5233b4347cc817a3e6e9e16b2ae6b3b5be25366e
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 01:05:01 2008 +0100

    Add byte and signed integer types

commit 65511e670e72f12cd78549696bb440708f1a7ab6
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 00:53:01 2008 +0100

    Extract all properties from scan result

commit 67c8529a4fe6b9e10569cf02b18dbb83766989b0
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 00:22:27 2008 +0100

    Optimize SSID character replacement

commit 296db43fcf95716fbdcb25e65164772a491605f5
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Dec 3 00:22:02 2008 +0100

    Fill WiFi.Security property with details

commit fcbf3efcfb709229ef60c9c4f34bafa55cee74e9
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Tue Dec 2 18:41:44 2008 +0100

    Add extra acccess policy for passphrases

commit 6193c90589d84e3a8ba09350e6be4479c74c3b38
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Tue Dec 2 18:31:13 2008 +0100

    Make property setting a little bit more generic

commit eed198d63d2396eb77f63f01460ecaab3508653e
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Tue Dec 2 14:55:28 2008 +0100

    Remove usage of GStaticMutex since it causes compiler problems


Diff in this email is a maximum of 400 lines.
diff --git a/include/element.h b/include/element.h
index 0a96397..85b9b06 100644
--- a/include/element.h
+++ b/include/element.h
@@ -84,7 +84,6 @@ struct connman_driver;
 
 struct connman_element {
        gint refcount;
-       GStaticMutex mutex;
        gint index;
        gchar *name;
        gchar *path;
@@ -117,9 +116,6 @@ struct connman_element {
        } wifi;
 };
 
-#define connman_element_lock(element)    g_static_mutex_lock(&(element)->mutex)
-#define connman_element_unlock(element)  
g_static_mutex_unlock(&(element)->mutex)
-
 extern struct connman_element *connman_element_create(const char *name);
 extern struct connman_element *connman_element_ref(struct connman_element 
*element);
 extern void connman_element_unref(struct connman_element *element);
diff --git a/plugins/connman.policy b/plugins/connman.policy
index 2dcc37c..1b34381 100644
--- a/plugins/connman.policy
+++ b/plugins/connman.policy
@@ -17,4 +17,13 @@
     </defaults>
   </action>
 
+  <action id="org.moblin.connman.passphrase">
+    <description>Passphrase configuration</description>
+    <message>Policy prevents modification of passphrases</message>
+    <defaults>
+      <allow_inactive>no</allow_inactive>
+      <allow_active>auth_admin_keep_always</allow_active>
+    </defaults>
+  </action>
+
 </policyconfig>
diff --git a/plugins/dhclient.c b/plugins/dhclient.c
index 342e6d7..7249773 100644
--- a/plugins/dhclient.c
+++ b/plugins/dhclient.c
@@ -45,7 +45,6 @@ struct dhclient_task {
        struct connman_element *element;
 };
 
-static GStaticMutex task_mutex = G_STATIC_MUTEX_INIT;
 static GSList *task_list = NULL;
 
 static struct dhclient_task *find_task_by_pid(GPid pid)
@@ -113,9 +112,7 @@ static void task_died(GPid pid, gint status, gpointer data)
        g_spawn_close_pid(pid);
        task->pid = 0;
 
-       g_static_mutex_lock(&task_mutex);
        task_list = g_slist_remove(task_list, task);
-       g_static_mutex_unlock(&task_mutex);
 
        unlink_task(task);
 
@@ -186,9 +183,7 @@ static int dhclient_probe(struct connman_element *element)
                return -1;
        }
 
-       g_static_mutex_lock(&task_mutex);
        task_list = g_slist_append(task_list, task);
-       g_static_mutex_unlock(&task_mutex);
 
        g_child_watch_add(task->pid, task_died, task);
 
@@ -203,14 +198,10 @@ static void dhclient_remove(struct connman_element 
*element)
 
        DBG("element %p name %s", element, element->name);
 
-       g_static_mutex_lock(&task_mutex);
-
        task = find_task_by_index(element->index);
        if (task != NULL)
                task_list = g_slist_remove(task_list, task);
 
-       g_static_mutex_unlock(&task_mutex);
-
        if (task == NULL)
                return;
 
@@ -247,9 +238,7 @@ static DBusHandlerResult dhclient_filter(DBusConnection 
*conn,
 
        DBG("change %d to %s", pid, text);
 
-       g_static_mutex_lock(&task_mutex);
        task = find_task_by_pid(pid);
-       g_static_mutex_unlock(&task_mutex);
 
        if (task == NULL)
                return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
@@ -351,8 +340,6 @@ static void dhclient_exit(void)
 {
        GSList *list;
 
-       g_static_mutex_lock(&task_mutex);
-
        for (list = task_list; list; list = list->next) {
                struct dhclient_task *task = list->data;
 
@@ -362,8 +349,6 @@ static void dhclient_exit(void)
                unlink_task(task);
        }
 
-       g_static_mutex_unlock(&task_mutex);
-
        g_slist_free(task_list);
 
        connman_driver_unregister(&dhclient_driver);
diff --git a/plugins/ethernet.c b/plugins/ethernet.c
index fb8afb4..d6861f8 100644
--- a/plugins/ethernet.c
+++ b/plugins/ethernet.c
@@ -41,7 +41,6 @@ struct ethernet_data {
        unsigned flags;
 };
 
-static GStaticMutex ethernet_mutex = G_STATIC_MUTEX_INIT;
 static GSList *ethernet_list = NULL;
 
 static void ethernet_newlink(unsigned short type, int index,
@@ -51,8 +50,6 @@ static void ethernet_newlink(unsigned short type, int index,
 
        DBG("index %d flags %ld change %ld", index, flags, change);
 
-       g_static_mutex_lock(&ethernet_mutex);
-
        for (list = ethernet_list; list; list = list->next) {
                struct connman_element *element = list->data;
                struct connman_element *netdev;
@@ -87,8 +84,6 @@ static void ethernet_newlink(unsigned short type, int index,
                        connman_element_unregister_children(element);
                }
        }
-
-       g_static_mutex_unlock(&ethernet_mutex);
 }
 
 static struct connman_rtnl ethernet_rtnl = {
@@ -192,9 +187,7 @@ static int ethernet_probe(struct connman_element *element)
        if (ethernet == NULL)
                return -ENOMEM;
 
-       g_static_mutex_lock(&ethernet_mutex);
        ethernet_list = g_slist_append(ethernet_list, element);
-       g_static_mutex_unlock(&ethernet_mutex);
 
        connman_element_set_data(element, ethernet);
 
@@ -217,9 +210,7 @@ static void ethernet_remove(struct connman_element *element)
 
        iface_down(ethernet);
 
-       g_static_mutex_lock(&ethernet_mutex);
        ethernet_list = g_slist_remove(ethernet_list, element);
-       g_static_mutex_unlock(&ethernet_mutex);
 
        g_free(ethernet);
 }
diff --git a/plugins/rtnllink.c b/plugins/rtnllink.c
index 14bb343..094547d 100644
--- a/plugins/rtnllink.c
+++ b/plugins/rtnllink.c
@@ -39,7 +39,6 @@
 
 #include "inet.h"
 
-static GStaticMutex device_mutex = G_STATIC_MUTEX_INIT;
 static GSList *device_list = NULL;
 
 static void rtnllink_newlink(unsigned short type, int index,
@@ -53,8 +52,6 @@ static void rtnllink_newlink(unsigned short type, int index,
 
        DBG("index %d", index);
 
-       g_static_mutex_lock(&device_mutex);
-
        for (list = device_list; list; list = list->next) {
                struct connman_element *device = list->data;
 
@@ -64,8 +61,6 @@ static void rtnllink_newlink(unsigned short type, int index,
                }
        }
 
-       g_static_mutex_unlock(&device_mutex);
-
        if (exists == TRUE)
                return;
 
@@ -113,12 +108,8 @@ static void rtnllink_newlink(unsigned short type, int 
index,
        device->index = index;
        device->name = name;
 
-       g_static_mutex_lock(&device_mutex);
-
        connman_element_register(device, NULL);
        device_list = g_slist_append(device_list, device);
-
-       g_static_mutex_unlock(&device_mutex);
 }
 
 static void rtnllink_dellink(unsigned short type, int index,
@@ -128,8 +119,6 @@ static void rtnllink_dellink(unsigned short type, int index,
 
        DBG("index %d", index);
 
-       g_static_mutex_lock(&device_mutex);
-
        for (list = device_list; list; list = list->next) {
                struct connman_element *device = list->data;
 
@@ -140,8 +129,6 @@ static void rtnllink_dellink(unsigned short type, int index,
                        break;
                }
        }
-
-       g_static_mutex_unlock(&device_mutex);
 }
 
 static struct connman_rtnl rtnllink_rtnl = {
@@ -169,8 +156,6 @@ static void rtnllink_exit(void)
 
        connman_rtnl_unregister(&rtnllink_rtnl);
 
-       g_static_mutex_lock(&device_mutex);
-
        for (list = device_list; list; list = list->next) {
                struct connman_element *device = list->data;
 
@@ -180,8 +165,6 @@ static void rtnllink_exit(void)
 
        g_slist_free(device_list);
        device_list = NULL;
-
-       g_static_mutex_unlock(&device_mutex);
 }
 
 CONNMAN_PLUGIN_DEFINE("rtnllink", "RTNL link detection plugin", VERSION,
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index 260d24f..39e1624 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -49,7 +49,6 @@ struct supplicant_task {
        enum supplicant_state state;
 };
 
-static GStaticMutex task_mutex = G_STATIC_MUTEX_INIT;
 static GSList *task_list = NULL;
 
 static DBusConnection *connection;
@@ -476,8 +475,8 @@ static int disable_network(struct supplicant_task *task)
 }
 
 static int set_network(struct supplicant_task *task,
-                                       const unsigned char *network, int len,
-                                                       const char *passphrase)
+                               const unsigned char *network, int len,
+                               const char *security, const char *passphrase)
 {
        DBusMessage *message, *reply;
        DBusMessageIter array, dict;
@@ -503,12 +502,26 @@ static int set_network(struct supplicant_task *task,
        connman_dbus_dict_append_array(&dict, "ssid",
                                        DBUS_TYPE_BYTE, &network, len);
 
-       if (passphrase && strlen(passphrase) > 0) {
+       if (g_ascii_strcasecmp(security, "wpa") == 0 ||
+                               g_ascii_strcasecmp(security, "wpa2") == 0) {
                const char *key_mgmt = "WPA-PSK";
                connman_dbus_dict_append_variant(&dict, "key_mgmt",
                                                DBUS_TYPE_STRING, &key_mgmt);
-               connman_dbus_dict_append_variant(&dict, "psk",
+
+               if (passphrase && strlen(passphrase) > 0)
+                       connman_dbus_dict_append_variant(&dict, "psk",
+                                               DBUS_TYPE_STRING, &passphrase);
+       } else if (g_ascii_strcasecmp(security, "wep") == 0) {
+               const char *key_mgmt = "NONE", *index = "0";
+               connman_dbus_dict_append_variant(&dict, "key_mgmt",
+                                               DBUS_TYPE_STRING, &key_mgmt);
+
+               if (passphrase && strlen(passphrase) > 0) {
+                       connman_dbus_dict_append_variant(&dict, "wep_key0",
                                                DBUS_TYPE_STRING, &passphrase);
+                       connman_dbus_dict_append_variant(&dict, "wep_tx_keyidx",
+                                               DBUS_TYPE_STRING, &index);
+               }
        } else {
                const char *key_mgmt = "NONE";
                connman_dbus_dict_append_variant(&dict, "key_mgmt",
@@ -620,13 +633,9 @@ static void extract_rsnie(struct supplicant_network 
*network,
 static void extract_capabilites(struct supplicant_network *network,
                                                DBusMessageIter *value)
 {
-       guint capabilities;
-
-       dbus_message_iter_get_basic(value, &capabilities);
-
-       network->capabilities = capabilities;
+       dbus_message_iter_get_basic(value, &network->capabilities);
 
-       if (capabilities & IEEE80211_CAP_PRIVACY)
+       if (network->capabilities & IEEE80211_CAP_PRIVACY)
                network->has_wep = TRUE;
 }
 
@@ -663,6 +672,19 @@ static void properties_reply(DBusPendingCall *call, void 
*user_data)
                //type = dbus_message_iter_get_arg_type(&value);
                //dbus_message_iter_get_basic(&value, &val);
 
+               /* 
+                * bssid        : a (97)
+                * ssid         : a (97)
+                * wpaie        : a (97)
+                * rsnie        : a (97)
+                * frequency    : i (105)
+                * capabilities : q (113)
+                * quality      : i (105)
+                * noise        : i (105)
+                * level        : i (105)
+                * maxrate      : i (105)
+                */
+
                if (g_str_equal(key, "ssid") == TRUE)
                        extract_ssid(network, &value);
                else if (g_str_equal(key, "wpaie") == TRUE)
@@ -671,6 +693,15 @@ static void properties_reply(DBusPendingCall *call, void 
*user_data)
                        extract_rsnie(network, &value);
                else if (g_str_equal(key, "capabilities") == TRUE)
                        extract_capabilites(network, &value);
+               else if (g_str_equal(key, "quality") == TRUE)
+                       dbus_message_iter_get_basic(&value, &network->quality);
+               else if (g_str_equal(key, "noise") == TRUE)
+                       dbus_message_iter_get_basic(&value, &network->noise);
+               else if (g_str_equal(key, "level") == TRUE)
+                       dbus_message_iter_get_basic(&value, &network->level);
+               else if (g_str_equal(key, "maxrate") == TRUE)
+                       dbus_message_iter_get_basic(&value, &network->maxrate);
+
 
                dbus_message_iter_next(&dict);
        }
@@ -931,9 +962,7 @@ int __supplicant_start(struct connman_element *element,
        task->created = FALSE;
        task->state = STATE_INACTIVE;
 
-       g_static_mutex_lock(&task_mutex);
        task_list = g_slist_append(task_list, task);
-       g_static_mutex_unlock(&task_mutex);
 
        err = get_interface(task);
        if (err < 0) {
@@ -961,9 +990,7 @@ int __supplicant_stop(struct connman_element *element)
        if (task == NULL)
                return -ENODEV;
 
-       g_static_mutex_lock(&task_mutex);
        task_list = g_slist_remove(task_list, task);
-       g_static_mutex_unlock(&task_mutex);
 
        disable_network(task);
 
@@ -1010,7 +1037,7 @@ int __supplicant_scan(struct connman_element *element)
 
 int __supplicant_connect(struct connman_element *element,
                                const unsigned char *ssid, int ssid_len,
-                                                       const char *passphrase)
+                               const char *security, const char *passphrase)
 {
        struct supplicant_task *task;
 
@@ -1025,7 +1052,7 @@ int __supplicant_connect(struct connman_element *element,
        select_network(task);
        disable_network(task);
 
-       set_network(task, ssid, ssid_len, passphrase);
+       set_network(task, ssid, ssid_len, security, passphrase);
 
        enable_network(task);
 
diff --git a/plugins/supplicant.h b/plugins/supplicant.h
index d62e07d..fa10a69 100644
--- a/plugins/supplicant.h
+++ b/plugins/supplicant.h
@@ -40,10 +40,14 @@ struct supplicant_network {
        gchar *identifier;
        guint8 *ssid;
        guint ssid_len;
-       guint capabilities;
+       guint16 capabilities;
        gboolean has_wep;
        gboolean has_wpa;
        gboolean has_rsn;
+       gint32 quality;
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits

Reply via email to