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

Reply via email to