diff options
author | taesub kim <taesub.kim@samsung.com> | 2017-03-23 21:30:20 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.vlan103.tizen.org> | 2017-03-23 21:30:20 -0700 |
commit | bacbf3b3464c00424ded04da1712e554c09c4625 (patch) | |
tree | b07bd27b5ab5af4c8eca7ee225b6f27d993d39e8 | |
parent | acaebb53965f6826abbf519ffb99efacdeb2af75 (diff) | |
parent | 995b4c60b88150ed18511e77c0217afe65f3a76f (diff) | |
download | connman-accepted/tizen/ivi/20170324.111317.tar.gz connman-accepted/tizen/ivi/20170324.111317.tar.bz2 connman-accepted/tizen/ivi/20170324.111317.zip |
Merge "Consider ipconfig method in clearing association state" into tizensubmit/tizen/20170324.072948submit/tizen/20170324.043751accepted/tizen/wearable/20170324.111226accepted/tizen/unified/20170324.111359accepted/tizen/tv/20170324.111144accepted/tizen/mobile/20170324.111018accepted/tizen/ivi/20170324.111317accepted/tizen/common/20170324.122814
-rwxr-xr-x | src/network.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/network.c b/src/network.c index 2585841c..eb7851ca 100755 --- a/src/network.c +++ b/src/network.c @@ -1307,8 +1307,35 @@ static gboolean __connman_network_clear_associating_delayed(gpointer user_data) if (network->associating == FALSE && state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION && - state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) - connman_network_clear_associating(network); + state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) { + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV4); + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV6); + } else { + if (network->associating == FALSE) { + struct connman_ipconfig *ipconfig_ipv4, *ipconfig_ipv6; + enum connman_ipconfig_method ipv4_method, ipv6_method; + + ipconfig_ipv4 = __connman_service_get_ip4config(service); + ipv4_method = __connman_ipconfig_get_method(ipconfig_ipv4); + ipconfig_ipv6 = __connman_service_get_ip4config(service); + ipv6_method = __connman_ipconfig_get_method(ipconfig_ipv6); + + if((ipv4_method == CONNMAN_IPCONFIG_METHOD_UNKNOWN || ipv4_method == CONNMAN_IPCONFIG_METHOD_OFF) && + (state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION)) + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV6); + if((ipv6_method == CONNMAN_IPCONFIG_METHOD_UNKNOWN || ipv6_method == CONNMAN_IPCONFIG_METHOD_OFF) && + (state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION)) + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_IDLE, + CONNMAN_IPCONFIG_TYPE_IPV4); + } + } return FALSE; } |