summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@nokia.com>2011-02-10 17:52:16 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-11 12:26:31 +0100
commit389b7de973f7445ac1b7f59129f6671ce6c5bdd3 (patch)
treef6c4089b37ad610ae69bb015a612bbbfe234c107 /src
parent56deaf39f76d52dc3659c3eb8655547312948be5 (diff)
downloadconnman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.tar.gz
connman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.tar.bz2
connman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.zip
network: Set service state correctly when ipconfig is cleared
Diffstat (limited to 'src')
-rw-r--r--src/network.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/network.c b/src/network.c
index 7a4d931a..240da894 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1094,12 +1094,14 @@ int __connman_network_clear_ipconfig(struct connman_network *network,
{
struct connman_service *service;
enum connman_ipconfig_method method;
+ enum connman_ipconfig_type type;
service = __connman_service_lookup_from_network(network);
if (service == NULL)
return -EINVAL;
method = __connman_ipconfig_get_method(ipconfig);
+ type = __connman_ipconfig_get_config_type(ipconfig);
switch (method) {
case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
@@ -1117,7 +1119,12 @@ int __connman_network_clear_ipconfig(struct connman_network *network,
break;
}
- __connman_service_indicate_state(service,
+ if (type == CONNMAN_IPCONFIG_TYPE_IPV6)
+ __connman_service_indicate_state(service,
+ CONNMAN_SERVICE_STATE_CONFIGURATION,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+ else if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
+ __connman_service_indicate_state(service,
CONNMAN_SERVICE_STATE_CONFIGURATION,
CONNMAN_IPCONFIG_TYPE_IPV4);