bluetooth: Register technology driver
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 28 Jan 2013 15:44:36 +0000 (17:44 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 30 Jan 2013 08:27:56 +0000 (10:27 +0200)
plugins/bluetooth.c

index 1b5aed0..7e7c35e 100644 (file)
 #define CONNMAN_API_SUBJECT_TO_CHANGE
 #include <connman/plugin.h>
 #include <connman/dbus.h>
+#include <connman/technology.h>
 
 static DBusConnection *connection;
 
+static int bluetooth_tech_probe(struct connman_technology *technology)
+{
+       return 0;
+}
+
+static void bluetooth_tech_remove(struct connman_technology *technology)
+{
+
+}
+
+static struct connman_technology_driver tech_driver = {
+       .name           = "bluetooth",
+       .type           = CONNMAN_SERVICE_TYPE_BLUETOOTH,
+       .probe          = bluetooth_tech_probe,
+       .remove         = bluetooth_tech_remove,
+};
+
 static int bluetooth_init(void)
 {
        connection = connman_dbus_get_connection();
        if (connection == NULL)
-               return -EIO;
+               goto out;
+
+       if (connman_technology_driver_register(&tech_driver) < 0) {
+               connman_warn("Failed to initialize technology for Bluez 5");
+               goto out;
+       }
 
        return 0;
+
+out:
+       if (connection != NULL)
+               dbus_connection_unref(connection);
+
+       return -EIO;
 }
 
 static void bluetooth_exit(void)
 {
+       connman_technology_driver_unregister(&tech_driver);
        dbus_connection_unref(connection);
 }