Lines Matching refs:data

154 static void sock_state_cb(void *data, ares_socket_t socket_fd,
157 struct Curl_easy *easy = data;
244 void Curl_resolver_cancel(struct Curl_easy *data)
246 DEBUGASSERT(data);
247 if(data->state.async.resolver)
248 ares_cancel((ares_channel)data->state.async.resolver);
249 destroy_async_data(&data->state.async);
256 void Curl_resolver_kill(struct Curl_easy *data)
260 Curl_resolver_cancel(data);
264 * destroy_async_data() cleans up async resolver data.
290 int Curl_resolver_getsock(struct Curl_easy *data,
297 int max = ares_getsock((ares_channel)data->state.async.resolver,
303 timeout = ares_timeout((ares_channel)data->state.async.resolver, &maxtime,
308 Curl_expire(data, milli, EXPIRE_ASYNC_NAME);
323 static int waitperform(struct Curl_easy *data, timediff_t timeout_ms)
332 bitmask = ares_getsock((ares_channel)data->state.async.resolver, socks,
363 ares_process_fd((ares_channel)data->state.async.resolver, ARES_SOCKET_BAD,
368 ares_process_fd((ares_channel)data->state.async.resolver,
384 CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
387 struct thread_data *res = data->state.async.tdata;
393 if(waitperform(data, 0) < 0)
416 ares_cancel((ares_channel)data->state.async.resolver);
422 (void)Curl_addrinfo_callback(data, res->last_status, res->temp_ai);
427 if(!data->state.async.dns)
428 result = Curl_resolver_error(data);
430 *dns = data->state.async.dns;
432 destroy_async_data(&data->state.async);
449 CURLcode Curl_resolver_wait_resolv(struct Curl_easy *data,
459 timeout = Curl_timeleft(data, &now, TRUE);
462 connclose(data->conn, "Timed out before name resolve started");
483 tvp = ares_timeout((ares_channel)data->state.async.resolver, &store, &tv);
493 if(waitperform(data, timeout_ms) < 0)
495 result = Curl_resolver_is_resolved(data, entry);
497 if(result || data->state.async.done)
500 if(Curl_pgrsUpdate(data))
518 ares_cancel((ares_channel)data->state.async.resolver);
523 *entry = data->state.async.dns;
528 connclose(data->conn, "c-ares resolve failed");
578 struct Curl_easy *data = (struct Curl_easy *)arg;
590 res = data->state.async.tdata;
595 struct Curl_addrinfo *ai = Curl_he2ai(hostent, data->state.async.port);
660 Curl_expire(data, HAPPY_EYEBALLS_DNS_TIMEOUT,
745 struct Curl_easy *data = (struct Curl_easy *)arg;
746 struct thread_data *res = data->state.async.tdata;
765 struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
777 data->state.async.hostname = res->hostname;
778 data->state.async.port = port;
779 data->state.async.done = FALSE; /* not done */
780 data->state.async.status = 0; /* clear */
781 data->state.async.dns = NULL; /* clear */
782 data->state.async.tdata = res;
794 if((data->conn->ip_version != CURL_IPRESOLVE_V4) &&
795 Curl_ipv6works(data)) {
797 if(data->conn->ip_version == CURL_IPRESOLVE_V6)
804 hints.ai_socktype = (data->conn->transport == TRNSPRT_TCP)?
812 ares_getaddrinfo((ares_channel)data->state.async.resolver, hostname,
813 service, &hints, addrinfo_cb, data);
818 if((data->conn->ip_version != CURL_IPRESOLVE_V4) && Curl_ipv6works(data)) {
823 ares_gethostbyname((ares_channel)data->state.async.resolver, hostname,
824 PF_INET, query_completed_cb, data);
825 ares_gethostbyname((ares_channel)data->state.async.resolver, hostname,
826 PF_INET6, query_completed_cb, data);
834 ares_gethostbyname((ares_channel)data->state.async.resolver,
836 query_completed_cb, data);
844 CURLcode Curl_set_dns_servers(struct Curl_easy *data,
861 ares_result = ares_set_servers_ports_csv(data->state.async.resolver,
864 ares_result = ares_set_servers_csv(data->state.async.resolver, servers);
877 DEBUGF(infof(data, "bad servers set"));
882 (void)data;
888 CURLcode Curl_set_dns_interface(struct Curl_easy *data,
895 ares_set_local_dev((ares_channel)data->state.async.resolver, interf);
899 (void)data;
905 CURLcode Curl_set_dns_local_ip4(struct Curl_easy *data,
916 DEBUGF(infof(data, "bad DNS IPv4 address"));
921 ares_set_local_ip4((ares_channel)data->state.async.resolver,
926 (void)data;
932 CURLcode Curl_set_dns_local_ip6(struct Curl_easy *data,
944 DEBUGF(infof(data, "bad DNS IPv6 address"));
949 ares_set_local_ip6((ares_channel)data->state.async.resolver, a6);
953 (void)data;