Add support for element based debugging
authorMarcel Holtmann <marcel@holtmann.org>
Sun, 4 Jan 2009 15:33:56 +0000 (16:33 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 4 Jan 2009 15:33:56 +0000 (16:33 +0100)
include/dbus.h
src/element.c

index 895a96d..77766c7 100644 (file)
@@ -30,6 +30,7 @@ extern "C" {
 
 #define CONNMAN_SERVICE                        "org.moblin.connman"
 
+#define CONNMAN_DEBUG_INTERFACE                CONNMAN_SERVICE ".Debug"
 #define CONNMAN_ERROR_INTERFACE                CONNMAN_SERVICE ".Error"
 #define CONNMAN_AGENT_INTERFACE                CONNMAN_SERVICE ".Agent"
 
index 2599e66..2f860c0 100644 (file)
@@ -311,6 +311,27 @@ static void set_common_property(struct connman_element *element,
        __connman_element_unlock(element);
 }
 
+static void emit_element_signal(DBusConnection *conn, const char *member,
+                                       struct connman_element *element)
+{
+       DBusMessage *signal;
+
+       if (__connman_debug_enabled() == FALSE)
+               return;
+
+       DBG("conn %p member %s", conn, member);
+
+       if (element == NULL)
+               return;
+
+       signal = dbus_message_new_signal(element->path,
+                                       CONNMAN_DEBUG_INTERFACE, member);
+       if (signal == NULL)
+               return;
+
+       g_dbus_send_message(conn, signal);
+}
+
 static void emit_enabled_signal(DBusConnection *conn,
                                        struct connman_element *element)
 {
@@ -1760,6 +1781,8 @@ static void register_element(gpointer data, gpointer user_data)
                }
        }
 
+       emit_element_signal(connection, "ElementAdded", element);
+
        __connman_element_store(element);
 
        if (started == FALSE)
@@ -1861,6 +1884,8 @@ static gboolean remove_element(GNode *node, gpointer user_data)
                                                CONNMAN_NETWORK_INTERFACE);
        }
 
+       emit_element_signal(connection, "ElementRemoved", element);
+
        connman_element_unref(element);
 
        return FALSE;
@@ -1911,6 +1936,8 @@ static gboolean update_element(GNode *node, gpointer user_data)
                }
        }
 
+       emit_element_signal(connection, "ElementUpdated", element);
+
        return FALSE;
 }