static void free_wpad(gpointer data) { struct connman_wpad *wpad = data; g_resolv_unref(wpad->resolv); g_strfreev(wpad->addrlist); g_free(wpad->hostname); g_free(wpad); }
static void cancel_host_resolv(struct connection_data *data) { if (data->resolv_id != 0) g_resolv_cancel_lookup(data->resolv, data->resolv_id); data->resolv_id = 0; g_resolv_unref(data->resolv); data->resolv = NULL; }
static void timeserver_stop(void) { DBG(" "); if (resolv) { g_resolv_unref(resolv); resolv = NULL; } g_slist_free_full(ts_list, g_free); ts_list = NULL; __connman_ntp_stop(); ts_recheck_disable(); }
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); }
void g_web_unref(GWeb *web) { if (web == NULL) return; if (__sync_fetch_and_sub(&web->ref_count, 1) != 1) return; flush_sessions(web); g_resolv_unref(web->resolv); g_free(web->proxy); g_free(web->accept_option); g_free(web->user_agent); g_free(web->user_agent_profile); g_free(web->http_version); g_free(web); }