From: Pasi Sjöholm <[email protected]>
As service is removed the IPv6.Privacy needs to be also reset to interface
default (ipdevice->ipv6_privacy).
---
src/connman.h | 1 +
src/ipconfig.c | 19 +++++++++++++++++++
src/service.c | 2 ++
3 files changed, 22 insertions(+)
diff --git a/src/connman.h b/src/connman.h
index 4bee34d..a871e82 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -413,6 +413,7 @@ int __connman_ipconfig_load(struct connman_ipconfig
*ipconfig,
int __connman_ipconfig_save(struct connman_ipconfig *ipconfig,
GKeyFile *keyfile, const char *identifier, const char *prefix);
bool __connman_ipconfig_ipv6_privacy_enabled(struct connman_ipconfig
*ipconfig);
+int __connman_ipconfig_ipv6_reset_privacy(struct connman_ipconfig *ipconfig);
int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig,
const char *value);
bool __connman_ipconfig_ipv6_is_enabled(struct connman_ipconfig *ipconfig);
diff --git a/src/ipconfig.c b/src/ipconfig.c
index fa4c0d6..d81a791 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -1774,6 +1774,25 @@ static int string2privacy(const char *privacy)
return 0;
}
+int __connman_ipconfig_ipv6_reset_privacy(struct connman_ipconfig *ipconfig)
+{
+ struct connman_ipdevice *ipdevice;
+ int err;
+
+ if (!ipconfig)
+ return -EINVAL;
+
+ ipdevice = g_hash_table_lookup(ipdevice_hash,
+
GINT_TO_POINTER(ipconfig->index));
+ if (!ipdevice)
+ return -ENODEV;
+
+ err = __connman_ipconfig_ipv6_set_privacy(ipconfig, privacy2string(
+
ipdevice->ipv6_privacy));
+
+ return err;
+}
+
int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig,
const char *value)
{
diff --git a/src/service.c b/src/service.c
index d96713d..8dc6580 100644
--- a/src/service.c
+++ b/src/service.c
@@ -4051,6 +4051,8 @@ bool __connman_service_remove(struct connman_service
*service)
__connman_service_set_favorite(service, false);
+ __connman_ipconfig_ipv6_reset_privacy(service->ipconfig_ipv6);
+
service_save(service);
return true;
--
1.9.1
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman