This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 README            |    2 +-
 include/element.h |   13 +++++++------
 plugins/hal.c     |   13 +++++++++----
 src/element.c     |   37 +++++++++++++++----------------------
 4 files changed, 32 insertions(+), 33 deletions(-)

New commits:
commit 352b0a1ac4ab26a5a0474915339973bf9dddad70
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Sat Oct 11 12:33:53 2008 +0200

    Don't include the Identifier property for now

commit ba204def533bde671766200ddaf09ceba192e23f
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Sat Oct 11 12:31:49 2008 +0200

    Add fake subtype for easier testing

commit 74e2a49df7c7c61b91b3cbc6273c5b49d8603f74
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Sat Oct 11 09:24:54 2008 +0200

    Change device removal handling

commit 110f80fd162fd56542c215b6e0035a4fd92b5d5e
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Fri Oct 10 16:08:25 2008 +0200

    Fix copy-and-paste typo

commit bfcbd6828d59c9033b0dd33fb781a1d0d8d551c1
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Oct 8 00:41:14 2008 +0200

    Fix missing driver handling issue

commit f4477991e23838c49eb59f94230ce5ac3858dffa
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Oct 8 00:38:45 2008 +0200

    Fix checking for existing driver and callbacks

commit 212854d57f92b64726bddec8fb9e321fb023c13c
Author: Marcel Holtmann <[EMAIL PROTECTED]>
Date:   Wed Oct 8 00:32:59 2008 +0200

    Handle drivers without enable or disable callbacks


Diff in this email is a maximum of 400 lines.
diff --git a/README b/README
index 246b56a..c5a8483 100644
--- a/README
+++ b/README
@@ -7,7 +7,7 @@ Copyright (C) 2007-2008  Intel Corporation. All rights reserved.
 Compilation and installation
 ============================
 
-In order to compile libgdbus you need following software packages:
+In order to compile Connection Manager you need following software packages:
        - GCC compiler
        - GLib library
        - D-Bus library
diff --git a/include/element.h b/include/element.h
index a7ddb7d..4669332 100644
--- a/include/element.h
+++ b/include/element.h
@@ -61,12 +61,13 @@ enum connman_element_type {
 
 enum connman_element_subtype {
        CONNMAN_ELEMENT_SUBTYPE_UNKNOWN   = 0,
-       CONNMAN_ELEMENT_SUBTYPE_NETWORK   = 1,
-       CONNMAN_ELEMENT_SUBTYPE_ETHERNET  = 2,
-       CONNMAN_ELEMENT_SUBTYPE_WIFI      = 3,
-       CONNMAN_ELEMENT_SUBTYPE_WIMAX     = 4,
-       CONNMAN_ELEMENT_SUBTYPE_MODEM     = 5,
-       CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH = 6,
+       CONNMAN_ELEMENT_SUBTYPE_FAKE      = 1,
+       CONNMAN_ELEMENT_SUBTYPE_NETWORK   = 2,
+       CONNMAN_ELEMENT_SUBTYPE_ETHERNET  = 3,
+       CONNMAN_ELEMENT_SUBTYPE_WIFI      = 4,
+       CONNMAN_ELEMENT_SUBTYPE_WIMAX     = 5,
+       CONNMAN_ELEMENT_SUBTYPE_MODEM     = 6,
+       CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH = 7,
 };
 
 struct connman_driver;
diff --git a/plugins/hal.c b/plugins/hal.c
index bda2f8c..12d67ef 100644
--- a/plugins/hal.c
+++ b/plugins/hal.c
@@ -168,6 +168,7 @@ static void device_added(LibHalContext *ctx, const char 
*udi)
 
 static void device_removed(LibHalContext *ctx, const char *udi)
 {
+       struct connman_element *removal = NULL;
        GSList *list;
        gchar *name;
 
@@ -181,14 +182,18 @@ static void device_removed(LibHalContext *ctx, const char 
*udi)
                struct connman_element *element = list->data;
 
                if (g_str_equal(element->name, name) == TRUE) {
-                       element_list = g_slist_remove(element_list, element);
-
-                       connman_element_unregister(element);
-                       connman_element_unref(element);
+                       removal = element;
                        break;
                }
        }
 
+       if (removal != NULL) {
+               element_list = g_slist_remove(element_list, removal);
+
+               connman_element_unregister(removal);
+               connman_element_unref(removal);
+       }
+
        g_static_mutex_unlock(&element_mutex);
 
        g_free(name);
diff --git a/src/element.c b/src/element.c
index ff467d5..d3b2cc5 100644
--- a/src/element.c
+++ b/src/element.c
@@ -229,9 +229,11 @@ static DBusMessage *get_properties(DBusConnection *conn,
                append_entry(&dict, "Priority",
                                DBUS_TYPE_UINT16, &element->priority);
 
+#if 0
        if (element->network.identifier != NULL)
                append_entry(&dict, "Identifier",
                                DBUS_TYPE_STRING, &element->network.identifier);
+#endif
 
        if (element->ipv4.address != NULL)
                append_entry(&dict, "IPv4.Address",
@@ -356,13 +358,10 @@ static DBusMessage *do_update(DBusConnection *conn,
 
        DBG("conn %p", conn);
 
-       if (element->driver == NULL)
-               return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
-
        if (element->enabled == FALSE)
                return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 
-       if (element->driver->update) {
+       if (element->driver && element->driver->update) {
                DBG("Calling update callback");
                element->driver->update(element);
        }
@@ -377,23 +376,20 @@ static DBusMessage *do_enable(DBusConnection *conn,
 
        DBG("conn %p", conn);
 
-       if (element->driver == NULL)
-               return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
-
        if (element->enabled == TRUE)
                return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 
-       if (element->driver->enable) {
+       if (element->driver && element->driver->enable) {
                DBG("Calling enable callback");
-               if (element->driver->enable(element) == 0) {
-                       element->enabled = TRUE;
+               element->driver->enable(element);
+       }
+
+       element->enabled = TRUE;
 
-                       g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
+       g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
                                CONNMAN_MANAGER_INTERFACE, "ElementUpdated",
                                DBUS_TYPE_OBJECT_PATH, &element->path,
                                                        DBUS_TYPE_INVALID);
-               }
-       }
 
        return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 }
@@ -405,23 +401,20 @@ static DBusMessage *do_disable(DBusConnection *conn,
 
        DBG("conn %p", conn);
 
-       if (element->driver == NULL)
-               return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
-
        if (element->enabled == FALSE)
                return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 
-       if (element->driver->disable) {
+       if (element->driver && element->driver->disable) {
                DBG("Calling disable callback");
-               if (element->driver->disable(element) == 0) {
-                       element->enabled = FALSE;
+               element->driver->disable(element);
+       }
 
-                       g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
+       element->enabled = FALSE;
+
+       g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH,
                                CONNMAN_MANAGER_INTERFACE, "ElementUpdated",
                                DBUS_TYPE_OBJECT_PATH, &element->path,
                                                        DBUS_TYPE_INVALID);
-               }
-       }
 
        return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
 }
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits

Reply via email to