summaryrefslogtreecommitdiff
path: root/src/provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/provider.c')
-rw-r--r--src/provider.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/provider.c b/src/provider.c
index 69536f70..ea7d37b5 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -84,6 +84,9 @@ static int connman_provider_setup_vpn_ipv4(struct connman_provider *provider,
g_free(element->ipv4.address);
element->ipv4.address = g_strdup(provider->element.ipv4.address);
+ g_free(element->ipv4.peer);
+ element->ipv4.peer = g_strdup(provider->element.ipv4.peer);
+
g_free(element->ipv4.netmask);
element->ipv4.netmask = g_strdup(provider->element.ipv4.netmask);
@@ -185,12 +188,14 @@ int __connman_provider_connect(struct connman_provider *provider)
DBG("provider %p", provider);
g_free(provider->element.ipv4.address);
+ g_free(provider->element.ipv4.peer);
g_free(provider->element.ipv4.netmask);
g_free(provider->element.ipv4.gateway);
g_free(provider->element.ipv4.broadcast);
g_free(provider->element.ipv4.pac);
provider->element.ipv4.address = NULL;
+ provider->element.ipv4.peer = NULL;
provider->element.ipv4.netmask = NULL;
provider->element.ipv4.gateway = NULL;
provider->element.ipv4.broadcast = NULL;
@@ -609,6 +614,9 @@ int connman_provider_set_string(struct connman_provider *provider,
} else if (g_str_equal(key, "Address") == TRUE) {
g_free(provider->element.ipv4.address);
provider->element.ipv4.address = g_strdup(value);
+ } else if (g_str_equal(key, "Peer") == TRUE) {
+ g_free(provider->element.ipv4.peer);
+ provider->element.ipv4.peer = g_strdup(value);
} else if (g_str_equal(key, "Netmask") == TRUE) {
g_free(provider->element.ipv4.netmask);
provider->element.ipv4.netmask = g_strdup(value);