summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2011-07-25 16:24:23 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-07-25 22:43:21 +0200
commit92c0a3bbf71ea93a49cb20a520d003c147e52871 (patch)
treeab476953c5dd35b3f03fb6225bedad1bec42ec00 /src/network.c
parent14030eaee370dcc42a96e7f30b0a9f63a2530266 (diff)
downloadconnman-92c0a3bbf71ea93a49cb20a520d003c147e52871.tar.gz
connman-92c0a3bbf71ea93a49cb20a520d003c147e52871.tar.bz2
connman-92c0a3bbf71ea93a49cb20a520d003c147e52871.zip
network: Stop DHCP
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.
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c
index 58bfb164..06aec05b 100644
--- a/src/network.c
+++ b/src/network.c
@@ -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);