This email list is read-only. Emails sent to this list will be discarded ---------------------------------- include/element.h | 1 - src/element.c | 22 ---------------------- src/network.c | 40 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 37 insertions(+), 26 deletions(-)
New commits: commit f93ca201df00929db3f27625b0626a9f2e7ac3ca Author: Marcel Holtmann <[email protected]> Date: Tue Jan 6 01:29:30 2009 +0100 Remove deprecated element strength handling commit 301a728a5e1ba1f7d70d9430e75376de7867b5d7 Author: Marcel Holtmann <[email protected]> Date: Tue Jan 6 01:26:34 2009 +0100 Fix signal emission for network creation and removal Diff in this email is a maximum of 400 lines. diff --git a/include/element.h b/include/element.h index 6f6aa69..d91886b 100644 --- a/include/element.h +++ b/include/element.h @@ -64,7 +64,6 @@ struct connman_element { gchar *path; enum connman_element_type type; gboolean enabled; - guint8 strength; gchar *devname; struct connman_element *parent; diff --git a/src/element.c b/src/element.c index ba94705..57c2566 100644 --- a/src/element.c +++ b/src/element.c @@ -1182,20 +1182,6 @@ static void emit_state_change(DBusConnection *conn, const char *state) g_dbus_send_message(conn, signal); } -static void set_signal_strength(struct connman_element *connection) -{ - struct connman_element *element = connection; - - while (element != NULL) { - if (element->type == CONNMAN_ELEMENT_TYPE_NETWORK) { - connection->strength = element->strength; - break; - } - - element = element->parent; - } -} - static void probe_element(struct connman_element *element) { GSList *list; @@ -1249,7 +1235,6 @@ static void register_element(gpointer data, gpointer user_data) g_node_append_data(node, element); if (element->type == CONNMAN_ELEMENT_TYPE_CONNECTION) { - set_signal_strength(element); emit_connections_signal(connection); emit_state_change(connection, "online"); } @@ -1382,19 +1367,12 @@ void connman_element_unregister_children(struct connman_element *element) static gboolean update_element(GNode *node, gpointer user_data) { struct connman_element *element = node->data; - struct connman_element *root = user_data; DBG("element %p name %s", element, element->name); if (element->driver && element->driver->update) element->driver->update(element); - if (element->type == CONNMAN_ELEMENT_TYPE_CONNECTION && - root->type == CONNMAN_ELEMENT_TYPE_NETWORK) { - if (element->strength != root->strength) - element->strength = root->strength; - } - emit_element_signal(connection, "ElementUpdated", element); return FALSE; diff --git a/src/network.c b/src/network.c index c60cfa4..99bb40b 100644 --- a/src/network.c +++ b/src/network.c @@ -236,8 +236,42 @@ static GDBusSignalTable network_signals[] = { static DBusConnection *connection; -static void emit_networks_signal(void) +static void append_networks(struct connman_device *device, + DBusMessageIter *entry) { + DBusMessageIter value, iter; + const char *key = "Networks"; + + 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((struct connman_element *) device, + CONNMAN_ELEMENT_TYPE_NETWORK, &iter); + dbus_message_iter_close_container(&value, &iter); + + dbus_message_iter_close_container(entry, &value); +} + +static void emit_networks_signal(struct connman_device *device) +{ + DBusMessage *signal; + DBusMessageIter entry; + + signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH, + CONNMAN_MANAGER_INTERFACE, "PropertyChanged"); + if (signal == NULL) + return; + + dbus_message_iter_init_append(signal, &entry); + + append_networks(device, &entry); + + g_dbus_send_message(connection, signal); } static int register_interface(struct connman_element *element) @@ -256,7 +290,7 @@ static int register_interface(struct connman_element *element) network->registered = TRUE; - emit_networks_signal(); + emit_networks_signal(network->device); return 0; } @@ -269,7 +303,7 @@ static void unregister_interface(struct connman_element *element) network->registered = FALSE; - emit_networks_signal(); + emit_networks_signal(network->device); g_dbus_unregister_interface(connection, element->path, CONNMAN_NETWORK_INTERFACE); _______________________________________________ Commits mailing list [email protected] https://lists.moblin.org/mailman/listinfo/commits
