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(ðernet_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(ðernet_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(ðernet_mutex);
ethernet_list = g_slist_append(ethernet_list, element);
- g_static_mutex_unlock(ðernet_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(ðernet_mutex);
ethernet_list = g_slist_remove(ethernet_list, element);
- g_static_mutex_unlock(ðernet_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