Lines Matching refs:request
161 struct request {
162 u8 *request; /* the dns packet data */
167 void *user_pointer; /* the pointer given to us for this request */
178 struct request *next, *prev;
183 char request_appended; /* true if the request pointer is data which follows this struct */
216 int timedout; /* number of times in a row a request has timed out */
228 static struct request *req_head = NULL, *req_waiting_head = NULL;
257 /* Represents a request that we've received as a DNS server, and holds */
267 struct evdns_server_port *port; /* Which port received this request on? */
311 static int global_max_retransmits = 3; /* number of times we'll retransmit a request which timed out */
321 static void evdns_request_insert(struct request *req, struct request **head);
324 static int evdns_request_transmit(struct request *req);
326 static void search_request_finished(struct request *const);
327 static int search_try_next(struct request *const req);
331 static struct request *request_new(int type, const char *name, int flags, evdns_callback_type callback, void *ptr);
332 static void request_submit(struct request *const req);
432 static struct request *
434 struct request *req = req_head, *const started_at = req_head;
487 struct request *req, *started_at;
545 request_trans_id_set(struct request *const req, const u16 trans_id) {
547 *((u16 *) req->request) = htons(trans_id);
550 /* Called to remove a request from a list and dealloc it. */
552 request isn't in a list. */
554 request_finished(struct request *const req, struct request **head) {
566 log(EVDNS_LOG_DEBUG, "Removing timeout for request %lx",
574 /* need to free the request data on it's own */
575 free(req->request);
577 /* the request data is appended onto the header */
587 /* We try the request again with another server. */
593 request_reissue(struct request *req) {
619 struct request *req;
620 /* move a request from the waiting queue to the inflight queue */
646 reply_callback(struct request *const req, u32 ttl, u32 err, struct reply *reply) {
682 reply_handle(struct request *const req, u16 flags, u32 ttl, struct reply *reply) {
718 * means "that request was very confusing."
722 "will allow the request to time out.",
734 /* a new request was issued so this
735 * request is finished and */
737 * that request (or a */
811 /* parses a raw request from a nameserver */
823 struct request *req = NULL;
840 /* If it's not an answer, it doesn't correspond to any request. */
860 if (name_parse(req->request, req->request_len, &k, cmp_name, sizeof(cmp_name))<0) \
953 /* Parse a raw request (packet,length) sent to a nameserver port (port) from */
1102 const struct request *req = req_head, *started_at;
1209 log(EVDNS_LOG_WARN, "Error %s (%d) while reading request.",
1435 /* Finds the length of a dns request for a DNS name of the given */
1436 /* length. The actual request may be smaller than the value returned */
1445 /* build a dns request packet into buf. buf should be at least as long */
1880 /* this is a libevent callback function which is called when a request */
1884 struct request *const req = (struct request *) arg;
1888 log(EVDNS_LOG_DEBUG, "Request %lx timed out", (unsigned long) arg);
1893 nameserver_failed(req->ns, "request timed out.");
1898 /* this request has failed */
1907 /* try to send a request to a given server. */
1914 evdns_request_transmit_to(struct request *req, struct nameserver *server) {
1922 r = sendto(server->socket, req->request, req->request_len, 0,
1936 /* try to send a request, updating the fields of the request */
1943 evdns_request_transmit(struct request *req) {
1971 "Setting timeout for request %lx", (unsigned long) req);
1974 "Error from libevent when adding timer for request %lx",
2000 struct request *req;
2022 struct request *const started_at = req_head, *req = req_head;
2057 struct request *req = req_head, *req_started_at = req_head;
2077 struct request *next = req->next;
2210 evdns_request_insert(struct request *req, struct request **head) {
2233 static struct request *
2242 /* the request data is alloced in a single block with the header */
2243 struct request *const req =
2244 (struct request *) malloc(sizeof(struct request) + request_max_len);
2249 memset(req, 0, sizeof(struct request));
2253 /* request data lives just after the header */
2254 req->request = ((u8 *) req) + sizeof(struct request);
2255 /* denotes that the request data shouldn't be free()ed */
2258 type, CLASS_INET, req->request, request_max_len);
2277 request_submit(struct request *const req) {
2295 struct request *const req =
2311 struct request *const req =
2324 struct request *req;
2344 struct request *req;
2526 struct request *req;
2546 struct request *const req = request_new(type, name, flags, user_callback, user_arg);
2553 /* this is called when a request has failed to find a name. We need to check */
2556 /* 0 another request has been submitted */
2559 search_try_next(struct request *const req) {
2563 struct request *newreq;
2599 search_request_finished(struct request *const req) {
3027 case DNS_ERR_TIMEOUT: return "request timed out";