projects
/
platform
/
upstream
/
connman.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
389b7de
)
service: IPv6 autoconf will change the service state
author
Jukka Rissanen
<jukka.rissanen@nokia.com>
Thu, 10 Feb 2011 15:52:17 +0000
(17:52 +0200)
committer
Samuel Ortiz
<sameo@linux.intel.com>
Fri, 11 Feb 2011 11:26:42 +0000
(12:26 +0100)
src/service.c
patch
|
blob
|
history
diff --git
a/src/service.c
b/src/service.c
index
5db3bae
..
1b8e42a
100644
(file)
--- a/
src/service.c
+++ b/
src/service.c
@@
-4123,18
+4123,46
@@
static void service_lower_down(struct connman_ipconfig *ipconfig)
static void service_ip_bound(struct connman_ipconfig *ipconfig)
{
struct connman_service *service = connman_ipconfig_get_data(ipconfig);
static void service_ip_bound(struct connman_ipconfig *ipconfig)
{
struct connman_service *service = connman_ipconfig_get_data(ipconfig);
+ enum connman_ipconfig_method method = CONNMAN_IPCONFIG_METHOD_UNKNOWN;
+ enum connman_ipconfig_type type = CONNMAN_IPCONFIG_TYPE_UNKNOWN;
connman_info("%s ip bound", connman_ipconfig_get_ifname(ipconfig));
connman_info("%s ip bound", connman_ipconfig_get_ifname(ipconfig));
+ type = __connman_ipconfig_get_config_type(ipconfig);
+ method = __connman_ipconfig_get_method(ipconfig);
+
+ DBG("service %p ipconfig %p type %d method %d", service, ipconfig,
+ type, method);
+
+ if (type == CONNMAN_IPCONFIG_TYPE_IPV6 &&
+ method == CONNMAN_IPCONFIG_METHOD_AUTO)
+ __connman_service_indicate_state(service,
+ CONNMAN_SERVICE_STATE_READY,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+
settings_changed(service);
}
static void service_ip_release(struct connman_ipconfig *ipconfig)
{
struct connman_service *service = connman_ipconfig_get_data(ipconfig);
settings_changed(service);
}
static void service_ip_release(struct connman_ipconfig *ipconfig)
{
struct connman_service *service = connman_ipconfig_get_data(ipconfig);
+ enum connman_ipconfig_method method = CONNMAN_IPCONFIG_METHOD_UNKNOWN;
+ enum connman_ipconfig_type type = CONNMAN_IPCONFIG_TYPE_UNKNOWN;
connman_info("%s ip release", connman_ipconfig_get_ifname(ipconfig));
connman_info("%s ip release", connman_ipconfig_get_ifname(ipconfig));
+ type = __connman_ipconfig_get_config_type(ipconfig);
+ method = __connman_ipconfig_get_method(ipconfig);
+
+ DBG("service %p ipconfig %p type %d method %d", service, ipconfig,
+ type, method);
+
+ if (type == CONNMAN_IPCONFIG_TYPE_IPV6 &&
+ method == CONNMAN_IPCONFIG_METHOD_OFF)
+ __connman_service_indicate_state(service,
+ CONNMAN_SERVICE_STATE_DISCONNECT,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+
settings_changed(service);
}
settings_changed(service);
}