Save config information (file name and section id) for
provisioned services. The information is used to remove the
service when config file is removed.
---
 src/connman.h |    2 ++
 src/service.c |   17 +++++++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index 388e6fb..5f55263 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -622,6 +622,8 @@ int __connman_service_disconnect_all(void);
 void __connman_service_auto_connect(void);
 
 void __connman_service_provision_changed(const char *ident);
+void __connman_service_set_config(struct connman_service *service,
+                               const char *file_id, const char *section);
 
 const char *__connman_service_type2string(enum connman_service_type type);
 enum connman_service_type __connman_service_string2type(const char *str);
diff --git a/src/service.c b/src/service.c
index a409fb4..cf5009f 100644
--- a/src/service.c
+++ b/src/service.c
@@ -118,6 +118,8 @@ struct connman_service {
        connman_bool_t do_split_routing;
        connman_bool_t new_service;
        connman_bool_t hidden_service;
+       char *config_file;
+       char *config_entry;
 };
 
 struct find_data {
@@ -3994,6 +3996,8 @@ static void service_free(gpointer user_data)
        g_free(service->private_key_file);
        g_free(service->private_key_passphrase);
        g_free(service->phase2);
+       g_free(service->config_file);
+       g_free(service->config_entry);
 
        if (service->stats.timer != NULL)
                g_timer_destroy(service->stats.timer);
@@ -5447,6 +5451,19 @@ void __connman_service_provision_changed(const char 
*ident)
        g_sequence_foreach(service_list, provision_changed, (void *)ident);
 }
 
+void __connman_service_set_config(struct connman_service *service,
+                               const char *file_id, const char *entry)
+{
+       if (service == NULL)
+               return;
+
+       g_free(service->config_file);
+       service->config_file = g_strdup(file_id);
+
+       g_free(service->config_entry);
+       service->config_entry = g_strdup(entry);
+}
+
 /**
  * __connman_service_get:
  * @identifier: service identifier
-- 
1.7.5.4

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

Reply via email to