diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2011-08-22 13:44:28 +0300 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-08-23 16:25:03 +0200 |
commit | 4f2b0069ec70c979ebf45c03e24f37b0bfc67e3d (patch) | |
tree | 08c012674d6179c6080a029a755fa382ea52c29c | |
parent | 7b1fade4c9a982312f6377a57feacc97cbbcc522 (diff) | |
download | connman-4f2b0069ec70c979ebf45c03e24f37b0bfc67e3d.tar.gz connman-4f2b0069ec70c979ebf45c03e24f37b0bfc67e3d.tar.bz2 connman-4f2b0069ec70c979ebf45c03e24f37b0bfc67e3d.zip |
service: Save ipconfig in states where ipconfig is set up
Service states unknown, idle and association do not have
valid ipconfig data configured. Do not save it in these states.
-rw-r--r-- | src/service.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/service.c b/src/service.c index 6482b50a..06972eca 100644 --- a/src/service.c +++ b/src/service.c @@ -5399,13 +5399,26 @@ update: g_key_file_remove_key(keyfile, service->identifier, "Passphrase", NULL); - if (service->ipconfig_ipv4 != NULL) - __connman_ipconfig_save(service->ipconfig_ipv4, keyfile, - service->identifier, "IPv4."); + switch (service->state) { + case CONNMAN_SERVICE_STATE_UNKNOWN: + case CONNMAN_SERVICE_STATE_IDLE: + case CONNMAN_SERVICE_STATE_ASSOCIATION: + break; + case CONNMAN_SERVICE_STATE_CONFIGURATION: + case CONNMAN_SERVICE_STATE_READY: + case CONNMAN_SERVICE_STATE_ONLINE: + case CONNMAN_SERVICE_STATE_DISCONNECT: + case CONNMAN_SERVICE_STATE_FAILURE: + if (service->ipconfig_ipv4 != NULL) + __connman_ipconfig_save(service->ipconfig_ipv4, + keyfile, service->identifier, + "IPv4."); - if (service->ipconfig_ipv6 != NULL) - __connman_ipconfig_save(service->ipconfig_ipv6, keyfile, - service->identifier, "IPv6."); + if (service->ipconfig_ipv6 != NULL) + __connman_ipconfig_save(service->ipconfig_ipv6, + keyfile, service->identifier, + "IPv6."); + } if (service->nameservers_config != NULL) { guint len = g_strv_length(service->nameservers_config); |