diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2011-01-12 02:07:03 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-01-13 00:37:10 +0100 |
commit | 3243f3966e4f05801a443e3893ac8551a47ec4b1 (patch) | |
tree | 9e203e7ee3154a186b711cf0a8a188f1cca2a716 /src/wpad.c | |
parent | 56d1e7231d4e7c371de3f4b7422f7a406402a054 (diff) | |
download | connman-3243f3966e4f05801a443e3893ac8551a47ec4b1.tar.gz connman-3243f3966e4f05801a443e3893ac8551a47ec4b1.tar.bz2 connman-3243f3966e4f05801a443e3893ac8551a47ec4b1.zip |
wpad: Set proxy method to DIRECT if WPAD name resolution failed
Diffstat (limited to 'src/wpad.c')
-rw-r--r-- | src/wpad.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -72,7 +72,7 @@ static void wpad_result(GResolvResultStatus status, char *url; if (results == NULL || g_strv_length(results) == 0) - return; + goto failed; url = g_strdup_printf("http://%s/wpad.dat", wpad->hostname); @@ -90,14 +90,14 @@ static void wpad_result(GResolvResultStatus status, hostname = wpad->hostname; if (strlen(hostname) < 6) - return; + goto failed; ptr = strchr(hostname + 5, '.'); if (ptr == NULL || strlen(ptr) < 2) - return; + goto failed; if (strchr(ptr + 1, '.') == NULL) - return; + goto failed; wpad->hostname = g_strdup_printf("wpad.%s", ptr + 1); g_free(hostname); @@ -106,6 +106,12 @@ static void wpad_result(GResolvResultStatus status, g_resolv_lookup_hostname(wpad->resolv, wpad->hostname, wpad_result, wpad); + + return; + +failed: + connman_service_set_proxy_method(wpad->service, + CONNMAN_SERVICE_PROXY_METHOD_DIRECT); } void __connman_wpad_start(struct connman_service *service) |