int __connman_wpad_start(struct connman_service *service) { struct connman_wpad *wpad; const char *domainname; char **nameservers; int index; int i; DBG("service %p", service); if (!wpad_list) return -EINVAL; index = __connman_service_get_index(service); if (index < 0) return -EINVAL; domainname = connman_service_get_domainname(service); if (!domainname) return -EINVAL; nameservers = connman_service_get_nameservers(service); if (!nameservers) return -EINVAL; wpad = g_try_new0(struct connman_wpad, 1); if (!wpad) { g_strfreev(nameservers); return -ENOMEM; } wpad->service = service; wpad->resolv = g_resolv_new(index); if (!wpad->resolv) { g_strfreev(nameservers); g_free(wpad); return -ENOMEM; } if (getenv("CONNMAN_RESOLV_DEBUG")) g_resolv_set_debug(wpad->resolv, resolv_debug, "RESOLV"); for (i = 0; nameservers[i]; i++) g_resolv_add_nameserver(wpad->resolv, nameservers[i], 53, 0); g_strfreev(nameservers); wpad->hostname = g_strdup_printf("wpad.%s", domainname); DBG("hostname %s", wpad->hostname); g_resolv_lookup_hostname(wpad->resolv, wpad->hostname, wpad_result, wpad); connman_service_ref(service); g_hash_table_replace(wpad_list, GINT_TO_POINTER(index), wpad); return 0; }
gboolean g_web_add_nameserver(GWeb *web, const char *address) { if (web == NULL) return FALSE; g_resolv_add_nameserver(web->resolv, address, 53, 0); return TRUE; }
bool g_web_add_nameserver(GWeb *web, const char *address) { if (!web) return false; g_resolv_add_nameserver(web->resolv, address, 53, 0); return true; }
static int timeserver_start(struct connman_service *service) { char **nameservers; int i; DBG("service %p", service); i = __connman_service_get_index(service); if (i < 0) return -EINVAL; nameservers = connman_service_get_nameservers(service); if (!nameservers) return -EINVAL; /* Stop an already ongoing resolution, if there is one */ if (resolv && resolv_id > 0) g_resolv_cancel_lookup(resolv, resolv_id); /* get rid of the old resolver */ if (resolv) { g_resolv_unref(resolv); resolv = NULL; } resolv = g_resolv_new(i); if (!resolv) { g_strfreev(nameservers); return -ENOMEM; } if (getenv("CONNMAN_RESOLV_DEBUG")) g_resolv_set_debug(resolv, resolv_debug, "RESOLV"); for (i = 0; nameservers[i]; i++) g_resolv_add_nameserver(resolv, nameservers[i], 53, 0); g_strfreev(nameservers); return __connman_timeserver_sync(service); }