summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2011-08-22 13:44:28 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-08-23 16:25:03 +0200
commit4f2b0069ec70c979ebf45c03e24f37b0bfc67e3d (patch)
tree08c012674d6179c6080a029a755fa382ea52c29c
parent7b1fade4c9a982312f6377a57feacc97cbbcc522 (diff)
downloadconnman-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.c25
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);