---
src/service.c | 13 +++++++++++--
src/wpad.c | 6 ++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/service.c b/src/service.c
index 8ec06c7..9b45d67 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3589,6 +3589,8 @@ static int __connman_service_indicate_state(struct
connman_service *service)
default_changed();
+ __connman_wispr_stop(service);
+
__connman_wpad_stop(service);
update_nameservers(service);
@@ -3693,17 +3695,22 @@ static void check_proxy_setup(struct connman_service
*service)
*/
if (service->proxy != CONNMAN_SERVICE_PROXY_METHOD_UNKNOWN)
- return;
+ goto done;
if (service->proxy_config != CONNMAN_SERVICE_PROXY_METHOD_UNKNOWN &&
(service->proxy_config != CONNMAN_SERVICE_PROXY_METHOD_AUTO ||
service->pac != NULL))
- return;
+ goto done;
if (__connman_wpad_start(service) < 0) {
service->proxy = CONNMAN_SERVICE_PROXY_METHOD_DIRECT;
__connman_notifier_proxy_changed(service);
}
+
+ return;
+
+done:
+ __connman_wispr_start(service, CONNMAN_IPCONFIG_TYPE_IPV4);
}
int __connman_service_ipconfig_indicate_state(struct connman_service *service,
@@ -3752,6 +3759,8 @@ int __connman_service_ipconfig_indicate_state(struct
connman_service *service,
if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
check_proxy_setup(service);
+ else
+ __connman_wispr_start(service, type);
break;
case CONNMAN_SERVICE_STATE_ONLINE:
break;
diff --git a/src/wpad.c b/src/wpad.c
index 0069c49..931423c 100644
--- a/src/wpad.c
+++ b/src/wpad.c
@@ -85,6 +85,9 @@ static void wpad_result(GResolvResultStatus status,
g_free(url);
+ __connman_wispr_start(wpad->service,
+ CONNMAN_IPCONFIG_TYPE_IPV4);
+
return;
}
@@ -113,6 +116,9 @@ static void wpad_result(GResolvResultStatus status,
failed:
connman_service_set_proxy_method(wpad->service,
CONNMAN_SERVICE_PROXY_METHOD_DIRECT);
+
+ __connman_wispr_start(wpad->service,
+ CONNMAN_IPCONFIG_TYPE_IPV4);
}
int __connman_wpad_start(struct connman_service *service)
--
1.7.3.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman