network: Stop DHCP
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Mon, 25 Jul 2011 14:24:23 +0000 (16:24 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 25 Jul 2011 20:43:21 +0000 (22:43 +0200)
If DHCP has been started for the IPv4 IP configuration we should also
stop it later.

The only place where it has been done so far was in
__connman_network_clear_ipconfig() which is called from
service.c:set_ipconfig(). But this will only be called if the user
changes service settings.

src/network.c

index 58bfb16..06aec05 100644 (file)
@@ -1075,6 +1075,18 @@ static gboolean set_connected(gpointer user_data)
 
                service = __connman_service_lookup_from_network(network);
 
+               switch (ipv4_method) {
+               case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
+               case CONNMAN_IPCONFIG_METHOD_OFF:
+               case CONNMAN_IPCONFIG_METHOD_AUTO:
+               case CONNMAN_IPCONFIG_METHOD_FIXED:
+               case CONNMAN_IPCONFIG_METHOD_MANUAL:
+                       break;
+               case CONNMAN_IPCONFIG_METHOD_DHCP:
+                       __connman_dhcp_stop(network);
+                       break;
+               }
+
                __connman_service_ipconfig_indicate_state(service,
                                        CONNMAN_SERVICE_STATE_DISCONNECT,
                                        CONNMAN_IPCONFIG_TYPE_IPV4);