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