summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-02-25 15:32:56 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-25 15:32:56 +0100
commitaf62314caf469a2d87380c211b0308987065be07 (patch)
treed71c431b5153077e9b79fc7dafa86882b43c247c /src
parent21dcc676a11701d0013d20c45636d2809b439db9 (diff)
downloadconnman-af62314caf469a2d87380c211b0308987065be07.tar.gz
connman-af62314caf469a2d87380c211b0308987065be07.tar.bz2
connman-af62314caf469a2d87380c211b0308987065be07.zip
network: Remove gateway when network disconnects
Diffstat (limited to 'src')
-rw-r--r--src/connection.c4
-rw-r--r--src/network.c9
2 files changed, 6 insertions, 7 deletions
diff --git a/src/connection.c b/src/connection.c
index 793bc8f5..fb2e4319 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -352,6 +352,10 @@ void __connman_connection_gateway_remove(struct connman_service *service)
CONNMAN_SERVICE_STATE_DISCONNECT,
CONNMAN_IPCONFIG_TYPE_IPV4);
+ __connman_service_indicate_state(service,
+ CONNMAN_SERVICE_STATE_DISCONNECT,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+
data = g_hash_table_lookup(gateway_hash, service);
if (data == NULL)
return;
diff --git a/src/network.c b/src/network.c
index ae58347a..2ad073b8 100644
--- a/src/network.c
+++ b/src/network.c
@@ -923,17 +923,12 @@ static gboolean set_connected(gpointer user_data)
service = __connman_service_lookup_from_network(network);
+ __connman_connection_gateway_remove(service);
+
__connman_service_indicate_state(service,
CONNMAN_SERVICE_STATE_IDLE,
CONNMAN_IPCONFIG_TYPE_IPV4);
- /* TODO: eventually the IPv6 disconnect state should be handled
- * in connection.c
- */
- __connman_service_indicate_state(service,
- CONNMAN_SERVICE_STATE_DISCONNECT,
- CONNMAN_IPCONFIG_TYPE_IPV6);
-
__connman_service_indicate_state(service,
CONNMAN_SERVICE_STATE_IDLE,
CONNMAN_IPCONFIG_TYPE_IPV6);