}
}
+ req->async_event = resolver->async->add_timer (resolver->async->data,
+ req->timeout, req);
+
kh_value(req->io->requests, k) = req;
REF_RETAIN(ioc);
REF_RELEASE(old_ioc);
UPSTREAM_FAIL (req->io->srv, time (NULL));
}
+ if (req->state == RDNS_REQUEST_TCP) {
+ rep = rdns_make_reply (req, RDNS_RC_TIMEOUT);
+ rdns_request_unschedule (req);
+ req->state = RDNS_REQUEST_REPLIED;
+ req->func (rep, req->arg);
+ REF_RELEASE (req);
+
+ return;
+ }
+
if (req->retransmits == 0) {
rep = rdns_make_reply (req, RDNS_RC_TIMEOUT);
req->async_event = NULL;
}
}
+ else if (req->state == RDNS_REQUEST_TCP) {
+ req->async->del_timer(req->async->data,
+ req->async_event);
+
+ req->async_event = NULL;
+ }
}
void