ofono: Register technology driver
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 19 Jan 2012 08:03:47 +0000 (09:03 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 19 Jan 2012 23:46:50 +0000 (00:46 +0100)
With e1d92d253c5db96bdc8fe2a21e463fc730570311 we need to register a driver
for each technology.

Fixes BMC#24702.

plugins/ofono.c

index b15ad03..c9a3256 100644 (file)
@@ -2409,6 +2409,22 @@ static struct connman_device_driver modem_driver = {
        .disable        = modem_disable,
 };
 
+static int tech_probe(struct connman_technology *technology)
+{
+       return 0;
+}
+
+static void tech_remove(struct connman_technology *technology)
+{
+}
+
+static struct connman_technology_driver tech_driver = {
+       .name           = "cellular",
+       .type           = CONNMAN_SERVICE_TYPE_CELLULAR,
+       .probe          = tech_probe,
+       .remove         = tech_remove,
+};
+
 static guint watch;
 static guint modem_added_watch;
 static guint modem_removed_watch;
@@ -2523,6 +2539,13 @@ static int ofono_init(void)
                goto remove;
        }
 
+       err = connman_technology_driver_register(&tech_driver);
+       if (err < 0) {
+               connman_device_driver_unregister(&modem_driver);
+               connman_network_driver_unregister(&network_driver);
+               goto remove;
+       }
+
        return 0;
 
 remove:
@@ -2566,6 +2589,7 @@ static void ofono_exit(void)
                context_hash = NULL;
        }
 
+       connman_technology_driver_unregister(&tech_driver);
        connman_device_driver_unregister(&modem_driver);
        connman_network_driver_unregister(&network_driver);