+#define BLUEZ_SERVICE "org.bluez"
+
+#define MANAGER_INTERFACE "org.bluez.Manager"
+#define MANAGER_PATH "/"
+
+static GStaticMutex element_mutex = G_STATIC_MUTEX_INIT;
+static GSList *element_list = NULL;
+
+static void create_element(DBusConnection *conn, const char *path)
+{
+ struct connman_element *element;
+
+ DBG("conn %p path %s", conn, path);
+
+ element = connman_element_create();
+
+ element->name = g_path_get_basename(path);
+ element->type = CONNMAN_ELEMENT_TYPE_DEVICE;
+ element->subtype = CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH;
+
+ g_static_mutex_lock(&element_mutex);
+
+ connman_element_register(element, NULL);
+
+ element_list = g_slist_append(element_list, element);
+
+ g_static_mutex_unlock(&element_mutex);
+}
+
+static gboolean bluetooth_signal(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ const char *sender, *interface, *member;
+
+ DBG("conn %p msg %p", conn, msg);
+
+ sender = dbus_message_get_sender(msg);
+ interface = dbus_message_get_interface(msg);
+ member = dbus_message_get_member(msg);
+
+ DBG("sender %s name %s.%s", sender, interface, member);
+
+ return TRUE;
+}
+
+static void list_adapters(DBusConnection *conn)