summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorMohamed Abbas <mohamed.abbas@intel.com>2011-06-22 10:53:04 -0700
committerSamuel Ortiz <sameo@linux.intel.com>2011-06-27 16:15:08 +0200
commitcf412a3fd135c0ccf15cea917d38800cce5a4d66 (patch)
treef663f24088a65a452075d0da15618c39bfbb2e50 /src/config.c
parent12dbfca7b45c31ba9de6f64286b15b4a4ce6e015 (diff)
downloadconnman-cf412a3fd135c0ccf15cea917d38800cce5a4d66.tar.gz
connman-cf412a3fd135c0ccf15cea917d38800cce5a4d66.tar.bz2
connman-cf412a3fd135c0ccf15cea917d38800cce5a4d66.zip
config: Provision service after adding new .config files.
For now if new .config files are added connman will create new config and but do not provision existing services. This patch will provision existing service if any config file are added or modified. Fixes bug #4880.
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 9bfa9ae8..90a2180b 100644
--- a/src/config.c
+++ b/src/config.c
@@ -651,6 +651,7 @@ static gboolean inotify_data(GIOChannel *channel, GIOCondition cond,
if (config != NULL) {
g_hash_table_remove_all(config->service_table);
load_config(config);
+ __connman_service_provision_changed(ident);
}
}
@@ -870,3 +871,24 @@ int __connman_config_provision_service(struct connman_service *service)
return 0;
}
+
+int __connman_config_provision_service_ident(struct connman_service *service,
+ const char *ident)
+{
+ enum connman_service_type type;
+ struct connman_config *config;
+
+ DBG("service %p", service);
+
+ /* For now only WiFi services are supported */
+ type = connman_service_get_type(service);
+ if (type != CONNMAN_SERVICE_TYPE_WIFI)
+ return -ENOSYS;
+
+ config = g_hash_table_lookup(config_table, ident);
+ if(config != NULL)
+ g_hash_table_foreach(config->service_table,
+ provision_service, service);
+
+ return 0;
+}