diff options
author | Alok Barsode <alok.barsode@azingo.com> | 2008-07-22 21:33:26 +0530 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.dentz@indt.org.br> | 2008-07-28 10:48:34 -0300 |
commit | ee86cf6916b26c167de8f0444778926148726fdf (patch) | |
tree | 060ce17692ec9a6b5bcabc98592d1e9eda4219e5 /hcid/manager.c | |
parent | 661a10565362c5ae0aad6a2ebf6513390cba868e (diff) |
Adding adapter_get_path.
Signed-off-by: Alok Barsode <alok.barsode@azingo.com>
Diffstat (limited to 'hcid/manager.c')
-rw-r--r-- | hcid/manager.c | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/hcid/manager.c b/hcid/manager.c index 64d3d465..e237742a 100644 --- a/hcid/manager.c +++ b/hcid/manager.c @@ -212,6 +212,7 @@ static DBusMessage *default_adapter(DBusConnection *conn, { DBusMessage *reply; struct adapter *adapter; + const gchar *path; adapter = manager_find_adapter_by_id(default_adapter_id); if (!adapter) @@ -221,7 +222,9 @@ static DBusMessage *default_adapter(DBusConnection *conn, if (!reply) return NULL; - dbus_message_append_args(reply, DBUS_TYPE_OBJECT_PATH, &adapter->path, + path = adapter_get_path(adapter); + + dbus_message_append_args(reply, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); return reply; @@ -235,6 +238,7 @@ static DBusMessage *find_adapter(DBusConnection *conn, struct hci_dev_info di; const char *pattern; int dev_id; + const gchar *path; if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern, DBUS_TYPE_INVALID)) @@ -264,7 +268,9 @@ static DBusMessage *find_adapter(DBusConnection *conn, if (!reply) return NULL; - dbus_message_append_args(reply, DBUS_TYPE_OBJECT_PATH, &adapter->path, + path = adapter_get_path(adapter); + + dbus_message_append_args(reply, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); return reply; @@ -292,6 +298,7 @@ static DBusMessage *list_adapters(DBusConnection *conn, struct adapter *adapter = l->data; struct hci_dev_info di; dev_id = adapter_get_dev_id(adapter); + const gchar *path = adapter_get_path(adapter); if (hci_devinfo(dev_id, &di) < 0) continue; @@ -300,7 +307,7 @@ static DBusMessage *list_adapters(DBusConnection *conn, continue; dbus_message_iter_append_basic(&array_iter, - DBUS_TYPE_OBJECT_PATH, &adapter->path); + DBUS_TYPE_OBJECT_PATH, &path); } dbus_message_iter_close_container(&iter, &array_iter); @@ -349,8 +356,9 @@ static gint adapter_path_cmp(gconstpointer a, gconstpointer b) { const struct adapter *adapter = a; const char *path = b; + const gchar *adapter_path = adapter_get_path(adapter); - return strcmp(adapter->path, path); + return strcmp(adapter_path, path); } static gint adapter_address_cmp(gconstpointer a, gconstpointer b) @@ -399,9 +407,11 @@ struct adapter *manager_find_adapter_by_id(int id) static void manager_add_adapter(struct adapter *adapter) { + const gchar *path = adapter_get_path(adapter); + g_dbus_emit_signal(connection, "/", MANAGER_INTERFACE, "AdapterAdded", - DBUS_TYPE_OBJECT_PATH, &adapter->path, + DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); adapters = g_slist_append(adapters, adapter); @@ -410,10 +420,11 @@ static void manager_add_adapter(struct adapter *adapter) static void manager_remove_adapter(struct adapter *adapter) { uint16_t dev_id = adapter_get_dev_id(adapter); + const gchar *path = adapter_get_path(adapter); g_dbus_emit_signal(connection, "/", MANAGER_INTERFACE, "AdapterRemoved", - DBUS_TYPE_OBJECT_PATH, &adapter->path, + DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); if ((default_adapter_id == dev_id || default_adapter_id < 0)) { @@ -429,17 +440,20 @@ static void manager_remove_adapter(struct adapter *adapter) int manager_register_adapter(int id) { struct adapter *adapter = adapter_create(id); + const gchar *path; if(!adapter) return -1; - if (!adapter_init(connection, adapter->path, adapter)) { - error("Adapter interface init failed on path %s", adapter->path); + path = adapter_get_path(adapter); + + if (!adapter_init(connection, path, adapter)) { + error("Adapter interface init failed on path %s", path); g_free(adapter); return -1; } - __probe_servers(adapter->path); + __probe_servers(path); manager_add_adapter(adapter); @@ -449,26 +463,29 @@ int manager_register_adapter(int id) int manager_unregister_adapter(int id) { struct adapter *adapter; + const gchar *path; adapter = manager_find_adapter_by_id(id); if (!adapter) return -1; - info("Unregister path: %s", adapter->path); + path = adapter_get_path(adapter); + + info("Unregister path: %s", path); - __remove_servers(adapter->path); + __remove_servers(path); adapter_stop(adapter); manager_remove_adapter(adapter); - if (!adapter_cleanup(connection, adapter->path)) { + if (!adapter_cleanup(connection, path)) { error("Failed to unregister adapter interface on %s object", - adapter->path); + path); return -1; } - g_free(adapter->path); + g_free(path); g_free(adapter); return 0; @@ -516,12 +533,13 @@ int manager_get_default_adapter() void manager_set_default_adapter(int id) { struct adapter *adapter = manager_find_adapter_by_id(id); + const gchar *path = adapter_get_path(adapter); default_adapter_id = id; g_dbus_emit_signal(connection, "/", MANAGER_INTERFACE, "DefaultAdapterChanged", - DBUS_TYPE_OBJECT_PATH, &adapter->path, + DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); } |