summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>2011-08-29 18:25:01 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-09-12 19:45:04 +0200
commitb8f54ce4609bd3df87742d6a9b907fba9b84b7b6 (patch)
tree42fb40d16cda6dc85481ed5ff83ab903250c7c25
parent7e63c18ebec3557c4e5f08b1216bf37e210a8518 (diff)
downloadconnman-b8f54ce4609bd3df87742d6a9b907fba9b84b7b6.tar.gz
connman-b8f54ce4609bd3df87742d6a9b907fba9b84b7b6.tar.bz2
connman-b8f54ce4609bd3df87742d6a9b907fba9b84b7b6.zip
wispr: Adding wispr logic entries in service and wpad
-rw-r--r--src/service.c13
-rw-r--r--src/wpad.c6
2 files changed, 17 insertions, 2 deletions
diff --git a/src/service.c b/src/service.c
index 195b8e91..841d9a33 100644
--- a/src/service.c
+++ b/src/service.c
@@ -4018,6 +4018,8 @@ static int service_indicate_state(struct connman_service *service)
default_changed();
+ __connman_wispr_stop(service);
+
__connman_wpad_stop(service);
update_nameservers(service);
@@ -4138,17 +4140,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,
@@ -4198,6 +4205,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 0069c494..931423c1 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)