network: Remove gateway when network disconnects
authorSamuel Ortiz <sameo@linux.intel.com>
Fri, 25 Feb 2011 14:32:56 +0000 (15:32 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 25 Feb 2011 14:32:56 +0000 (15:32 +0100)
src/connection.c
src/network.c

index 793bc8f..fb2e431 100644 (file)
@@ -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;
index ae58347..2ad073b 100644 (file)
@@ -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);