diff options
author | Jukka Rissanen <jukka.rissanen@nokia.com> | 2011-02-10 17:52:16 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-02-11 12:26:31 +0100 |
commit | 389b7de973f7445ac1b7f59129f6671ce6c5bdd3 (patch) | |
tree | f6c4089b37ad610ae69bb015a612bbbfe234c107 /src/network.c | |
parent | 56deaf39f76d52dc3659c3eb8655547312948be5 (diff) | |
download | connman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.tar.gz connman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.tar.bz2 connman-389b7de973f7445ac1b7f59129f6671ce6c5bdd3.zip |
network: Set service state correctly when ipconfig is cleared
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 9 |
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); |