diff options
author | Mohamed Abbas <mohamed.abbas@intel.com> | 2011-06-22 10:53:04 -0700 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-06-27 16:15:08 +0200 |
commit | cf412a3fd135c0ccf15cea917d38800cce5a4d66 (patch) | |
tree | f663f24088a65a452075d0da15618c39bfbb2e50 /src/config.c | |
parent | 12dbfca7b45c31ba9de6f64286b15b4a4ce6e015 (diff) | |
download | connman-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.c | 22 |
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; +} |