summaryrefslogtreecommitdiff
path: root/src/provider.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-11-03 10:32:39 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2010-11-03 10:32:39 +0100
commit4c2ee9da64453d48eb22ddca90d6cc87249eee86 (patch)
tree4bcad06ef46347ca9e882913daffbe05f492cf04 /src/provider.c
parent0c0f02420dd27ed12a7f5d28ac6e6990e51ce884 (diff)
downloadconnman-4c2ee9da64453d48eb22ddca90d6cc87249eee86.tar.gz
connman-4c2ee9da64453d48eb22ddca90d6cc87249eee86.tar.bz2
connman-4c2ee9da64453d48eb22ddca90d6cc87249eee86.zip
provider: Forward peer address to the ipv4 layer
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);