#include "curl_memory.h"
#include "memdebug.h"
-struct resdata {
- struct curltime start;
-};
/*
* Curl_resolver_global_init()
CURLcode Curl_resolver_init(struct Curl_easy *easy, void **resolver)
{
(void)easy;
- *resolver = calloc(1, sizeof(struct resdata));
- if(!*resolver)
- return CURLE_OUT_OF_MEMORY;
+ (void)resolver;
return CURLE_OK;
}
*/
void Curl_resolver_cleanup(void *resolver)
{
- free(resolver);
+ (void)resolver;
}
/*
async->status = 0;
async->dns = NULL;
td->thread_hnd = curl_thread_t_null;
+ td->start = Curl_now();
if(!init_thread_sync_data(td, hostname, port, hints)) {
free(td);
int Curl_resolver_getsock(struct Curl_easy *data, curl_socket_t *socks)
{
int ret_val = 0;
- timediff_t milli;
- timediff_t ms;
- struct resdata *reslv = (struct resdata *)data->state.async.resolver;
#ifndef CURL_DISABLE_SOCKETPAIR
struct thread_data *td = &data->state.async.thdata;
#endif
}
#endif
#ifndef CURL_DISABLE_SOCKETPAIR
- if(td) {
- /* return read fd to client for polling the DNS resolution status */
- socks[socketi] = td->tsd.sock_pair[0];
- ret_val |= GETSOCK_READSOCK(socketi);
- }
- else {
-#endif
- ms = Curl_timediff(Curl_now(), reslv->start);
+ /* return read fd to client for polling the DNS resolution status */
+ socks[socketi] = td->tsd.sock_pair[0];
+ ret_val |= GETSOCK_READSOCK(socketi);
+#else
+ {
+ timediff_t milli;
+ timediff_t ms = Curl_timediff(Curl_now(), td->start);
if(ms < 3)
milli = 0;
else if(ms <= 50)
else
milli = 200;
Curl_expire(data, milli, EXPIRE_ASYNC_NAME);
-#ifndef CURL_DISABLE_SOCKETPAIR
}
#endif
-
return ret_val;
}
int port,
int *waitp)
{
- struct resdata *reslv = (struct resdata *)data->state.async.resolver;
+ struct thread_data *td = &data->state.async.thdata;
*waitp = 0; /* default to synchronous response */
- reslv->start = Curl_now();
-
/* fire up a new resolver thread! */
if(init_resolve_thread(data, hostname, port, NULL)) {
*waitp = 1; /* expect asynchronous response */
{
struct addrinfo hints;
int pf = PF_INET;
- struct resdata *reslv = (struct resdata *)data->state.async.resolver;
-
*waitp = 0; /* default to synchronous response */
#ifdef CURLRES_IPV6
hints.ai_socktype = (data->conn->transport == TRNSPRT_TCP) ?
SOCK_STREAM : SOCK_DGRAM;
- reslv->start = Curl_now();
/* fire up a new resolver thread! */
if(init_resolve_thread(data, hostname, port, &hints)) {
*waitp = 1; /* expect asynchronous response */