summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-03-19 13:50:40 +0100
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-03-20 12:03:41 +0200
commit4ce90440a70abce7de5377776e942ff14e7152f9 (patch)
treed96de3f0dbc428d7d9ece6942cd641ac978f7697
parentd51d9c7ab4a95d1061d7d4b11b77ea2541f48ade (diff)
downloadconnman-4ce90440a70abce7de5377776e942ff14e7152f9.tar.gz
connman-4ce90440a70abce7de5377776e942ff14e7152f9.tar.bz2
connman-4ce90440a70abce7de5377776e942ff14e7152f9.zip
ipconfig: Disable IPv6 for new interfaces
We don't have yet an ipconfig for this interface, that means the service.c does not yet know this interface. In order to be able to get into sync we disable IPv6 auto connection at this point. If the service state machine decides to connect, it will enable it again.
-rw-r--r--src/ipconfig.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 399e4927..af5666db 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -550,6 +550,13 @@ static void __connman_ipconfig_lower_up(struct connman_ipdevice *ipdevice)
{
DBG("ipconfig ipv4 %p ipv6 %p", ipdevice->config_ipv4,
ipdevice->config_ipv6);
+
+ if (ipdevice->config_ipv6 != NULL &&
+ ipdevice->config_ipv6->enabled == TRUE)
+ return;
+
+ set_ipv6_state(ipdevice->ifname, FALSE);
+ ipdevice->ipv6_enabled = FALSE;
}
static void __connman_ipconfig_lower_down(struct connman_ipdevice *ipdevice)