diff options
author | Henri Bragge <henri.bragge@ixonos.com> | 2011-04-01 11:41:38 +0300 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-11 12:02:42 +0200 |
commit | a667e05447dc2276a4e359a41a1604e20da17689 (patch) | |
tree | 0e89efb2d1512014c7f0c75ed4c07e0e222ee2f4 /src/config.c | |
parent | 375413a93ff842f129b02fda06954ba0b41e76cc (diff) | |
download | connman-a667e05447dc2276a4e359a41a1604e20da17689.tar.gz connman-a667e05447dc2276a4e359a41a1604e20da17689.tar.bz2 connman-a667e05447dc2276a4e359a41a1604e20da17689.zip |
config: Fix service configuration update
Service config should not be replaced after update (the existing struct
shall be reused).
Diffstat (limited to 'src/config.c')
-rw-r--r-- | src/config.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/config.c b/src/config.c index e4dfcd90..dcef4e53 100644 --- a/src/config.c +++ b/src/config.c @@ -171,6 +171,7 @@ static int load_service(GKeyFile *keyfile, const char *group, struct connman_config_service *service; const char *ident; char *str, *hex_ssid; + gboolean service_created = FALSE; /* Strip off "service_" prefix */ ident = group + 8; @@ -188,6 +189,8 @@ static int load_service(GKeyFile *keyfile, const char *group, return -ENOMEM; service->ident = g_strdup(ident); + + service_created = TRUE; } str = g_key_file_get_string(keyfile, group, SERVICE_KEY_TYPE, NULL); @@ -297,7 +300,9 @@ static int load_service(GKeyFile *keyfile, const char *group, service->passphrase = str; } - g_hash_table_replace(config->service_table, service->ident, service); + if (service_created) + g_hash_table_insert(config->service_table, service->ident, + service); connman_info("Adding service configuration %s", service->ident); |