summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/connman.h2
-rw-r--r--src/ipconfig.c19
2 files changed, 21 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h
index 8c167981..1f74e238 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -362,6 +362,8 @@ int __connman_ipconfig_load(struct connman_ipconfig *ipconfig,
int __connman_ipconfig_save(struct connman_ipconfig *ipconfig,
GKeyFile *keyfile, const char *identifier, const char *prefix);
gboolean __connman_ipconfig_ipv6_privacy_enabled(struct connman_ipconfig *ipconfig);
+int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig,
+ const char *value);
int __connman_ipconfig_set_rp_filter();
void __connman_ipconfig_unset_rp_filter(int old_value);
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 06c488af..6927936f 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -1718,6 +1718,25 @@ static int string2privacy(const char *privacy)
return 0;
}
+int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig,
+ const char *value)
+{
+ int privacy;
+
+ if (ipconfig == NULL)
+ return -EINVAL;
+
+ DBG("ipconfig %p privacy %s", ipconfig, value);
+
+ privacy = string2privacy(value);
+
+ ipconfig->ipv6_privacy_config = privacy;
+
+ enable_ipv6(ipconfig);
+
+ return 0;
+}
+
void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
DBusMessageIter *iter)
{