summaryrefslogtreecommitdiff
path: root/src/ipconfig.c
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 /src/ipconfig.c
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.
Diffstat (limited to 'src/ipconfig.c')
-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)