diff --git a/src/main.c b/src/main.c
index 31af12a..7593b15 100644
--- a/src/main.c
+++ b/src/main.c
}
}
- if (!manager_init(btd_get_dbus_connection(), "/")) {
+ if (!manager_init("/")) {
error("Can't register manager interface");
exit(1);
}
g_source_remove(signal);
- manager_cleanup(btd_get_dbus_connection(), "/");
+ manager_cleanup("/");
rfkill_exit();
diff --git a/src/manager.c b/src/manager.c
index 31feb84..fe8706b 100644
--- a/src/manager.c
+++ b/src/manager.c
static char base_path[50] = "/org/bluez";
-static DBusConnection *connection = NULL;
static int default_adapter_id = -1;
static GSList *adapters = NULL;
{ }
};
-dbus_bool_t manager_init(DBusConnection *conn, const char *path)
+dbus_bool_t manager_init(const char *path)
{
- connection = conn;
-
snprintf(base_path, sizeof(base_path), "/org/bluez/%d", getpid());
- return g_dbus_register_interface(conn, "/", MANAGER_INTERFACE,
- manager_methods, manager_signals,
- NULL, NULL, NULL);
+ return g_dbus_register_interface(btd_get_dbus_connection(),
+ "/", MANAGER_INTERFACE,
+ manager_methods, manager_signals, NULL,
+ NULL, NULL);
}
static void manager_update_adapters(void)
path = adapter_get_path(adapter);
- g_dbus_emit_signal(connection, "/",
- MANAGER_INTERFACE,
- "DefaultAdapterChanged",
- DBUS_TYPE_OBJECT_PATH, &path,
- DBUS_TYPE_INVALID);
+ g_dbus_emit_signal(btd_get_dbus_connection(), "/",
+ MANAGER_INTERFACE, "DefaultAdapterChanged",
+ DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_INVALID);
}
struct btd_adapter *manager_get_default_adapter(void)
manager_set_default_adapter(new_default);
}
- g_dbus_emit_signal(connection, "/",
- MANAGER_INTERFACE, "AdapterRemoved",
- DBUS_TYPE_OBJECT_PATH, &path,
- DBUS_TYPE_INVALID);
+ g_dbus_emit_signal(btd_get_dbus_connection(), "/",
+ MANAGER_INTERFACE, "AdapterRemoved",
+ DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_INVALID);
adapter_remove(adapter);
btd_adapter_unref(adapter);
btd_start_exit_timer();
}
-void manager_cleanup(DBusConnection *conn, const char *path)
+void manager_cleanup(const char *path)
{
while (adapters) {
struct btd_adapter *adapter = adapters->data;
btd_start_exit_timer();
- g_dbus_unregister_interface(conn, "/", MANAGER_INTERFACE);
+ g_dbus_unregister_interface(btd_get_dbus_connection(),
+ "/", MANAGER_INTERFACE);
}
static gint adapter_id_cmp(gconstpointer a, gconstpointer b)
return NULL;
}
- adapter = adapter_create(connection, id);
+ adapter = adapter_create(btd_get_dbus_connection(), id);
if (!adapter)
return NULL;
}
path = adapter_get_path(adapter);
- g_dbus_emit_signal(connection, "/",
+ g_dbus_emit_signal(btd_get_dbus_connection(), "/",
MANAGER_INTERFACE, "AdapterAdded",
DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID);
diff --git a/src/manager.h b/src/manager.h
index f3c100e..0bb8b2c 100644
--- a/src/manager.h
+++ b/src/manager.h
typedef void (*adapter_cb) (struct btd_adapter *adapter, gpointer user_data);
-dbus_bool_t manager_init(DBusConnection *conn, const char *path);
-void manager_cleanup(DBusConnection *conn, const char *path);
+dbus_bool_t manager_init(const char *path);
+void manager_cleanup(const char *path);
const char *manager_get_base_path(void);
struct btd_adapter *manager_find_adapter(const bdaddr_t *sba);