Add get and create ipconfig from service
authorMartin Xu <martin.xu@intel.com>
Tue, 9 Feb 2010 09:29:50 +0000 (10:29 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 11 Feb 2010 04:28:32 +0000 (05:28 +0100)
In some cases (for example the oFono plugin), we will not get the network
index before creating the service. We then need a routine that allows us to
setup the ipconfig layer once we get the index.

src/connman.h
src/service.c

index ff38ad5..fd5afd5 100644 (file)
@@ -390,6 +390,10 @@ struct connman_service *__connman_service_create_from_network(struct connman_net
 void __connman_service_update_from_network(struct connman_network *network);
 void __connman_service_remove_from_network(struct connman_network *network);
 
+void __connman_service_create_ipconfig(struct connman_service *service,
+                                                               int index);
+struct connman_ipconfig *__connman_service_get_ipconfig(
+                               struct connman_service *service);
 const char *__connman_service_get_path(struct connman_service *service);
 unsigned int __connman_service_get_order(struct connman_service *service);
 struct connman_network *__connman_service_get_network(struct connman_service *service);
index 3b5cb9d..eb1402a 100644 (file)
@@ -1452,6 +1452,15 @@ __connman_service_get_network(struct connman_service *service)
        return service->network;
 }
 
+struct connman_ipconfig *
+__connman_service_get_ipconfig(struct connman_service *service)
+{
+       if (service == NULL)
+               return NULL;
+
+       return service->ipconfig;
+}
+
 /**
  * __connman_service_set_favorite:
  * @service: service structure
@@ -2163,6 +2172,15 @@ static void setup_ipconfig(struct connman_service *service, int index)
        connman_ipconfig_set_ops(service->ipconfig, &service_ops);
 }
 
+void __connman_service_create_ipconfig(struct connman_service *service,
+                                                               int index)
+{
+       if (service->ipconfig != NULL)
+               return;
+
+       setup_ipconfig(service, index);
+}
+
 /**
  * __connman_service_lookup_from_network:
  * @network: network structure