This email list is read-only. Emails sent to this list will be discarded
----------------------------------
plugins/ipv4.c | 10 ----------
plugins/resolvconf.c | 9 ---------
plugins/resolvfile.c | 10 ----------
src/element.c | 49 +++++++++++++++++++++++++------------------------
src/manager.c | 37 ++++---------------------------------
5 files changed, 29 insertions(+), 86 deletions(-)
New commits:
commit e53e3eb4fae306bfb6bf26bf57c3a9530841487d
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date: Sun Aug 10 10:26:25 2008 +0200
Remove deprecated device API
commit 2657bbff7f718c5f822bdffd4b10b70ce3b21a33
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date: Sun Aug 10 10:23:16 2008 +0200
The core will remove children in reverse order automatically
commit a98f8a0b02a619b6c7eb5d09c56e4930f6a83eee
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date: Sun Aug 10 10:08:18 2008 +0200
Remove all children before removing the parent node
Diff in this email is a maximum of 400 lines.
diff --git a/plugins/ipv4.c b/plugins/ipv4.c
index 9654c76..17d6c53 100644
--- a/plugins/ipv4.c
+++ b/plugins/ipv4.c
@@ -204,8 +204,6 @@ static int ipv4_probe(struct connman_element *element)
resolver->type = CONNMAN_ELEMENT_TYPE_RESOLVER;
resolver->netdev.name = g_strdup(element->netdev.name);
- connman_element_set_data(element, resolver);
-
connman_element_register(resolver, element);
return 0;
@@ -213,16 +211,8 @@ static int ipv4_probe(struct connman_element *element)
static void ipv4_remove(struct connman_element *element)
{
- struct connman_element *resolver = connman_element_get_data(element);
-
DBG("element %p name %s", element, element->name);
- connman_element_set_data(element, NULL);
-
- connman_element_unregister(resolver);
-
- connman_element_unref(resolver);
-
clear_ipv4(element);
}
diff --git a/plugins/resolvconf.c b/plugins/resolvconf.c
index b065060..e512f2b 100644
--- a/plugins/resolvconf.c
+++ b/plugins/resolvconf.c
@@ -64,8 +64,6 @@ static int resolvconf_probe(struct connman_element *element)
internet->type = CONNMAN_ELEMENT_TYPE_INTERNET;
- connman_element_set_data(element, internet);
-
connman_element_register(internet, element);
return 0;
@@ -73,18 +71,11 @@ static int resolvconf_probe(struct connman_element *element)
static void resolvconf_remove(struct connman_element *element)
{
- struct connman_element *internet = connman_element_get_data(element);
gchar *cmd;
int err;
DBG("element %p name %s", element, element->name);
- connman_element_set_data(element, NULL);
-
- connman_element_unregister(internet);
-
- connman_element_unref(internet);
-
cmd = g_strdup_printf("%s -d %s", RESOLVCONF, element->netdev.name);
DBG("%s", cmd);
diff --git a/plugins/resolvfile.c b/plugins/resolvfile.c
index bf48081..5ea3422 100644
--- a/plugins/resolvfile.c
+++ b/plugins/resolvfile.c
@@ -67,8 +67,6 @@ static int resolvfile_probe(struct connman_element *element)
internet->type = CONNMAN_ELEMENT_TYPE_INTERNET;
- connman_element_set_data(element, internet);
-
connman_element_register(internet, element);
return 0;
@@ -76,15 +74,7 @@ static int resolvfile_probe(struct connman_element *element)
static void resolvfile_remove(struct connman_element *element)
{
- struct connman_element *internet = connman_element_get_data(element);
-
DBG("element %p name %s", element, element->name);
-
- connman_element_set_data(element, NULL);
-
- connman_element_unregister(internet);
-
- connman_element_unref(internet);
}
static struct connman_driver resolvfile_driver = {
diff --git a/src/element.c b/src/element.c
index 2d4c5fb..365b42b 100644
--- a/src/element.c
+++ b/src/element.c
@@ -712,10 +712,6 @@ static void register_element(gpointer data, gpointer
user_data)
g_node_append_data(node, element);
- g_static_rw_lock_writer_unlock(&element_lock);
-
- __connman_element_store(element);
-
if (g_dbus_register_interface(connection, element->path,
CONNMAN_ELEMENT_INTERFACE,
element_methods, NULL, NULL,
@@ -727,11 +723,9 @@ static void register_element(gpointer data, gpointer
user_data)
DBUS_TYPE_OBJECT_PATH, &element->path,
DBUS_TYPE_INVALID);
- if (element->type == CONNMAN_ELEMENT_TYPE_DEVICE)
- g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "DeviceAdded",
- DBUS_TYPE_OBJECT_PATH, &element->path,
- DBUS_TYPE_INVALID);
+ g_static_rw_lock_writer_unlock(&element_lock);
+
+ __connman_element_store(element);
g_static_rw_lock_writer_lock(&element_lock);
@@ -754,17 +748,12 @@ static void register_element(gpointer data, gpointer
user_data)
g_static_rw_lock_writer_unlock(&element_lock);
}
-static void unregister_element(gpointer data, gpointer user_data)
+static gboolean remove_element(GNode *node, gpointer user_data)
{
- struct connman_element *element = data;
- GNode *node;
+ struct connman_element *element = node->data;
DBG("element %p name %s", element, element->name);
- g_static_rw_lock_writer_lock(&element_lock);
-
- node = g_node_find(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, element);
-
if (element->driver) {
if (element->driver->remove)
element->driver->remove(element);
@@ -779,14 +768,6 @@ static void unregister_element(gpointer data, gpointer
user_data)
g_node_destroy(node);
}
- g_static_rw_lock_writer_unlock(&element_lock);
-
- if (element->type == CONNMAN_ELEMENT_TYPE_DEVICE)
- g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "DeviceRemoved",
- DBUS_TYPE_OBJECT_PATH, &element->path,
- DBUS_TYPE_INVALID);
-
g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
CONNMAN_MANAGER_INTERFACE, "ElementRemoved",
DBUS_TYPE_OBJECT_PATH, &element->path,
@@ -796,6 +777,26 @@ static void unregister_element(gpointer data, gpointer
user_data)
CONNMAN_ELEMENT_INTERFACE);
connman_element_unref(element);
+
+ return FALSE;
+}
+
+static void unregister_element(gpointer data, gpointer user_data)
+{
+ struct connman_element *element = data;
+ GNode *node;
+
+ DBG("element %p name %s", element, element->name);
+
+ g_static_rw_lock_writer_lock(&element_lock);
+
+ node = g_node_find(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, element);
+
+ if (node != NULL)
+ g_node_traverse(node, G_POST_ORDER,
+ G_TRAVERSE_ALL, -1, remove_element, NULL);
+
+ g_static_rw_lock_writer_unlock(&element_lock);
}
int __connman_element_init(DBusConnection *conn, const char *device)
diff --git a/src/manager.c b/src/manager.c
index c4ea0fb..27f6fc5 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -123,38 +123,11 @@ static DBusMessage *list_elements(DBusConnection *conn,
return reply;
}
-static DBusMessage *list_devices(DBusConnection *conn,
- DBusMessage *msg, void *data)
-{
- DBusMessage *reply;
- DBusMessageIter array, iter;
-
- DBG("conn %p", conn);
-
- reply = dbus_message_new_method_return(msg);
- if (reply == NULL)
- return NULL;
-
- dbus_message_iter_init_append(reply, &array);
-
- dbus_message_iter_open_container(&array, DBUS_TYPE_ARRAY,
- DBUS_TYPE_OBJECT_PATH_AS_STRING, &iter);
-
- __connman_element_list(CONNMAN_ELEMENT_TYPE_DEVICE, &iter);
-
- dbus_message_iter_close_container(&array, &iter);
-
- return reply;
-}
-
static GDBusMethodTable manager_methods[] = {
- { "RegisterAgent", "o", "", register_agent },
- { "UnregisterAgent", "o", "", unregister_agent },
-
- { "ListProfiles", "", "ao", list_profiles },
-
- { "ListElements", "", "ao", list_elements },
- { "ListDevices", "", "ao", list_devices },
+ { "RegisterAgent", "o", "", register_agent },
+ { "UnregisterAgent", "o", "", unregister_agent },
+ { "ListProfiles", "", "ao", list_profiles },
+ { "ListElements", "", "ao", list_elements },
{ },
};
@@ -162,8 +135,6 @@ static GDBusSignalTable manager_signals[] = {
{ "ElementAdded", "o" },
{ "ElementUpdated", "o" },
{ "ElementRemoved", "o" },
- { "DeviceAdded", "o" },
- { "DeviceRemoved", "o" },
{ },
};
_______________________________________________
Commits mailing list
[email protected]
https://www.moblin.org/mailman/listinfo/commits