From: Guillaume Lucas <guillaumex.lu...@intel.com>

---
 src/technology.c |  154 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 79 insertions(+), 75 deletions(-)

diff --git a/src/technology.c b/src/technology.c
index 7d89b2e..5ef3d10 100644
--- a/src/technology.c
+++ b/src/technology.c
@@ -139,81 +139,6 @@ void connman_technology_driver_unregister(struct 
connman_technology_driver *driv
        driver_list = g_slist_remove(driver_list, driver);
 }
 
-void __connman_technology_add_interface(enum connman_service_type type,
-                               int index, const char *name, const char *ident)
-{
-       GSList *list;
-
-       switch (type) {
-       case CONNMAN_SERVICE_TYPE_UNKNOWN:
-       case CONNMAN_SERVICE_TYPE_SYSTEM:
-               return;
-       case CONNMAN_SERVICE_TYPE_ETHERNET:
-       case CONNMAN_SERVICE_TYPE_WIFI:
-       case CONNMAN_SERVICE_TYPE_WIMAX:
-       case CONNMAN_SERVICE_TYPE_BLUETOOTH:
-       case CONNMAN_SERVICE_TYPE_CELLULAR:
-       case CONNMAN_SERVICE_TYPE_GPS:
-       case CONNMAN_SERVICE_TYPE_VPN:
-       case CONNMAN_SERVICE_TYPE_GADGET:
-               break;
-       }
-
-       connman_info("Create interface %s [ %s ]", name,
-                               __connman_service_type2string(type));
-
-       for (list = technology_list; list; list = list->next) {
-               struct connman_technology *technology = list->data;
-
-               if (technology->type != type)
-                       continue;
-
-               if (technology->driver == NULL)
-                       continue;
-
-               if (technology->driver->add_interface)
-                       technology->driver->add_interface(technology,
-                                                       index, name, ident);
-       }
-}
-
-void __connman_technology_remove_interface(enum connman_service_type type,
-                               int index, const char *name, const char *ident)
-{
-       GSList *list;
-
-       switch (type) {
-       case CONNMAN_SERVICE_TYPE_UNKNOWN:
-       case CONNMAN_SERVICE_TYPE_SYSTEM:
-               return;
-       case CONNMAN_SERVICE_TYPE_ETHERNET:
-       case CONNMAN_SERVICE_TYPE_WIFI:
-       case CONNMAN_SERVICE_TYPE_WIMAX:
-       case CONNMAN_SERVICE_TYPE_BLUETOOTH:
-       case CONNMAN_SERVICE_TYPE_CELLULAR:
-       case CONNMAN_SERVICE_TYPE_GPS:
-       case CONNMAN_SERVICE_TYPE_VPN:
-       case CONNMAN_SERVICE_TYPE_GADGET:
-               break;
-       }
-
-       connman_info("Remove interface %s [ %s ]", name,
-                               __connman_service_type2string(type));
-
-       for (list = technology_list; list; list = list->next) {
-               struct connman_technology *technology = list->data;
-
-               if (technology->type != type)
-                       continue;
-
-               if (technology->driver == NULL)
-                       continue;
-
-               if (technology->driver->remove_interface)
-                       technology->driver->remove_interface(technology, index);
-       }
-}
-
 static void tethering_changed(struct connman_technology *technology)
 {
        connman_bool_t tethering = technology->tethering;
@@ -619,6 +544,85 @@ static void technology_put(struct connman_technology 
*technology)
        g_free(technology);
 }
 
+void __connman_technology_add_interface(enum connman_service_type type,
+                               int index, const char *name, const char *ident)
+{
+       GSList *list;
+
+       switch (type) {
+       case CONNMAN_SERVICE_TYPE_UNKNOWN:
+       case CONNMAN_SERVICE_TYPE_SYSTEM:
+               return;
+       case CONNMAN_SERVICE_TYPE_ETHERNET:
+       case CONNMAN_SERVICE_TYPE_WIFI:
+       case CONNMAN_SERVICE_TYPE_WIMAX:
+       case CONNMAN_SERVICE_TYPE_BLUETOOTH:
+       case CONNMAN_SERVICE_TYPE_CELLULAR:
+       case CONNMAN_SERVICE_TYPE_GPS:
+       case CONNMAN_SERVICE_TYPE_VPN:
+       case CONNMAN_SERVICE_TYPE_GADGET:
+               break;
+       }
+
+       connman_info("Create interface %s [ %s ]", name,
+                               __connman_service_type2string(type));
+
+       technology_get(type);
+
+       for (list = technology_list; list; list = list->next) {
+               struct connman_technology *technology = list->data;
+
+               if (technology->type != type)
+                       continue;
+
+               if (technology->driver == NULL)
+                       continue;
+
+               if (technology->driver->add_interface)
+                       technology->driver->add_interface(technology,
+                                                       index, name, ident);
+       }
+}
+
+void __connman_technology_remove_interface(enum connman_service_type type,
+                               int index, const char *name, const char *ident)
+{
+       GSList *list;
+
+       switch (type) {
+       case CONNMAN_SERVICE_TYPE_UNKNOWN:
+       case CONNMAN_SERVICE_TYPE_SYSTEM:
+               return;
+       case CONNMAN_SERVICE_TYPE_ETHERNET:
+       case CONNMAN_SERVICE_TYPE_WIFI:
+       case CONNMAN_SERVICE_TYPE_WIMAX:
+       case CONNMAN_SERVICE_TYPE_BLUETOOTH:
+       case CONNMAN_SERVICE_TYPE_CELLULAR:
+       case CONNMAN_SERVICE_TYPE_GPS:
+       case CONNMAN_SERVICE_TYPE_VPN:
+       case CONNMAN_SERVICE_TYPE_GADGET:
+               break;
+       }
+
+       connman_info("Remove interface %s [ %s ]", name,
+                               __connman_service_type2string(type));
+
+       for (list = technology_list; list; list = list->next) {
+               struct connman_technology *technology = list->data;
+
+               if (technology->type != type)
+                       continue;
+
+               if (technology->driver == NULL)
+                       continue;
+
+               if (technology->driver->remove_interface)
+                       technology->driver->remove_interface(technology, index);
+
+               technology_put(technology);
+       }
+}
+
 static void unregister_technology(gpointer data)
 {
        struct connman_technology *technology = data;
-- 
1.7.0.4

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to