summaryrefslogtreecommitdiff
path: root/src/element.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-23 23:15:44 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-23 23:15:44 +0100
commit71d6a9e1271a7c18f22b9215f700c9b567a36fad (patch)
tree8b7e0ea28cf1f4284e20ef762bcbfd877281bd2a /src/element.c
parentc5f2e63d9026d92c5bb4676cad456d495b02dd1c (diff)
downloadconnman-71d6a9e1271a7c18f22b9215f700c9b567a36fad.tar.gz
connman-71d6a9e1271a7c18f22b9215f700c9b567a36fad.tar.bz2
connman-71d6a9e1271a7c18f22b9215f700c9b567a36fad.zip
Move connection signal handling away from elements core
Diffstat (limited to 'src/element.c')
-rw-r--r--src/element.c44
1 files changed, 2 insertions, 42 deletions
diff --git a/src/element.c b/src/element.c
index 2f1aa433..b7e8951e 100644
--- a/src/element.c
+++ b/src/element.c
@@ -870,44 +870,6 @@ int __connman_element_set_ipv4(struct connman_element *element,
return 0;
}
-static void append_connections(DBusMessageIter *entry)
-{
- DBusMessageIter value, iter;
- const char *key = "Connections";
-
- dbus_message_iter_append_basic(entry, DBUS_TYPE_STRING, &key);
-
- dbus_message_iter_open_container(entry, DBUS_TYPE_VARIANT,
- DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_OBJECT_PATH_AS_STRING,
- &value);
-
- dbus_message_iter_open_container(&value, DBUS_TYPE_ARRAY,
- DBUS_TYPE_OBJECT_PATH_AS_STRING, &iter);
- __connman_element_list(NULL, CONNMAN_ELEMENT_TYPE_CONNECTION, &iter);
- dbus_message_iter_close_container(&value, &iter);
-
- dbus_message_iter_close_container(entry, &value);
-}
-
-static void emit_connections_signal(DBusConnection *conn)
-{
- DBusMessage *signal;
- DBusMessageIter entry;
-
- DBG("conn %p", conn);
-
- signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "PropertyChanged");
- if (signal == NULL)
- return;
-
- dbus_message_iter_init_append(signal, &entry);
-
- append_connections(&entry);
-
- g_dbus_send_message(conn, signal);
-}
-
static void append_state(DBusMessageIter *entry, const char *state)
{
DBusMessageIter value;
@@ -1006,8 +968,6 @@ static void register_element(gpointer data, gpointer user_data)
parent = parent->parent;
}
- emit_connections_signal(connection);
-
if (__connman_element_count(NULL,
CONNMAN_ELEMENT_TYPE_CONNECTION) == 1)
emit_state_change(connection, "online");
@@ -1102,8 +1062,6 @@ static gboolean remove_element(GNode *node, gpointer user_data)
if (__connman_element_count(NULL,
CONNMAN_ELEMENT_TYPE_CONNECTION) == 0)
emit_state_change(connection, "offline");
-
- emit_connections_signal(connection);
}
emit_element_signal(connection, "ElementRemoved", element);
@@ -1174,6 +1132,8 @@ int connman_element_set_enabled(struct connman_element *element,
element->enabled = enabled;
+ connman_element_update(element);
+
return 0;
}