Lines Matching refs:dns
50 #define AS_NS_SA(p) ((p)->as_ctx->ac_ns[(p)->as.dns.nsidx - 1])
72 as->as.dns.obuf = (unsigned char *)buf; in res_send_async()
73 as->as.dns.obuflen = buflen; in res_send_async()
74 as->as.dns.obufsize = buflen; in res_send_async()
83 as->as.dns.reqid = h.id; in res_send_async()
84 as->as.dns.type = q.q_type; in res_send_async()
85 as->as.dns.class = q.q_class; in res_send_async()
86 as->as.dns.dname = strdup(q.q_dname); in res_send_async()
87 if (as->as.dns.dname == NULL) in res_send_async()
173 as->as.dns.obuflen > PACKETSZ) in res_send_async_run()
257 ar->ar_datalen = as->as.dns.ibuflen; in res_send_async_run()
258 ar->ar_data = as->as.dns.ibuf; in res_send_async_run()
259 as->as.dns.ibuf = NULL; in res_send_async_run()
261 ar->ar_rcode = as->as.dns.rcode; in res_send_async_run()
274 } else if (as->as.dns.ancount) { in res_send_async_run()
276 ar->ar_count = as->as.dns.ancount; in res_send_async_run()
279 switch (as->as.dns.rcode) { in res_send_async_run()
370 if (as->as.dns.obuf == NULL) { in setup_query()
371 as->as.dns.obufsize = PACKETSZ; in setup_query()
372 as->as.dns.obuf = malloc(as->as.dns.obufsize); in setup_query()
373 if (as->as.dns.obuf == NULL) in setup_query()
376 as->as.dns.obuflen = 0; in setup_query()
391 _asr_pack_init(&p, as->as.dns.obuf, as->as.dns.obufsize); in setup_query()
404 as->as.dns.reqid = h.id; in setup_query()
405 as->as.dns.type = type; in setup_query()
406 as->as.dns.class = class; in setup_query()
407 if (as->as.dns.dname) in setup_query()
408 free(as->as.dns.dname); in setup_query()
409 as->as.dns.dname = strdup(dname); in setup_query()
410 if (as->as.dns.dname == NULL) { in setup_query()
414 as->as.dns.obuflen = p.offset; in setup_query()
416 DPRINT_PACKET("asr_setup_query", as->as.dns.obuf, as->as.dns.obuflen); in setup_query()
442 n = send(as->as_fd, as->as.dns.obuf, as->as.dns.obuflen, 0); in udp_send()
473 n = recv(as->as_fd, as->as.dns.ibuf, as->as.dns.ibufsize, 0); in udp_recv()
481 as->as.dns.ibuflen = n; in udp_recv()
483 DPRINT_PACKET("asr_udp_recv()", as->as.dns.ibuf, as->as.dns.ibuflen); in udp_recv()
517 as->as.dns.datalen = 0; /* bytes sent */ in tcp_write()
524 if (as->as.dns.datalen < sizeof(len)) { in tcp_write()
526 len = htons(as->as.dns.obuflen); in tcp_write()
527 iov[i].iov_base = (char *)(&len) + as->as.dns.datalen; in tcp_write()
528 iov[i].iov_len = sizeof(len) - as->as.dns.datalen; in tcp_write()
531 offset = as->as.dns.datalen - sizeof(len); in tcp_write()
533 iov[i].iov_base = as->as.dns.obuf + offset; in tcp_write()
534 iov[i].iov_len = as->as.dns.obuflen - offset; in tcp_write()
549 as->as.dns.datalen += n; in tcp_write()
551 if (as->as.dns.datalen == as->as.dns.obuflen + sizeof(len)) { in tcp_write()
553 as->as.dns.datalen = 0; in tcp_write()
582 if (as->as.dns.datalen < sizeof(as->as.dns.pktlen)) { in tcp_read()
584 pos = (char *)(&as->as.dns.pktlen) + as->as.dns.datalen; in tcp_read()
585 len = sizeof(as->as.dns.pktlen) - as->as.dns.datalen; in tcp_read()
598 as->as.dns.datalen += n; in tcp_read()
599 if (as->as.dns.datalen < sizeof(as->as.dns.pktlen)) in tcp_read()
602 as->as.dns.ibuflen = ntohs(as->as.dns.pktlen); in tcp_read()
603 if (ensure_ibuf(as, as->as.dns.ibuflen) == -1) in tcp_read()
619 offset = as->as.dns.datalen - sizeof(as->as.dns.pktlen); in tcp_read()
620 pos = as->as.dns.ibuf + offset; in tcp_read()
621 len = as->as.dns.ibuflen - offset; in tcp_read()
634 as->as.dns.datalen += n; in tcp_read()
637 if (as->as.dns.datalen != as->as.dns.ibuflen + sizeof(as->as.dns.pktlen)) in tcp_read()
640 DPRINT_PACKET("asr_tcp_read()", as->as.dns.ibuf, as->as.dns.ibuflen); in tcp_read()
663 if (as->as.dns.ibufsize >= n) in ensure_ibuf()
666 t = recallocarray(as->as.dns.ibuf, as->as.dns.ibufsize, n, 1); in ensure_ibuf()
669 as->as.dns.ibuf = t; in ensure_ibuf()
670 as->as.dns.ibufsize = n; in ensure_ibuf()
688 _asr_unpack_init(&p, as->as.dns.ibuf, as->as.dns.ibuflen); in validate_packet()
694 if (h.id != as->as.dns.reqid) { in validate_packet()
710 as->as.dns.rcode = RCODE(h.flags); in validate_packet()
711 as->as.dns.ancount = h.ancount; in validate_packet()
717 if (q.q_type != as->as.dns.type || in validate_packet()
718 q.q_class != as->as.dns.class || in validate_packet()
719 strcasecmp(q.q_dname, as->as.dns.dname)) { in validate_packet()
721 q.q_dname, as->as.dns.dname); in validate_packet()
743 if (p.offset != as->as.dns.ibuflen) { in validate_packet()
780 if (as->as.dns.nsloop >= as->as_ctx->ac_nsretries) in iter_ns()
783 as->as.dns.nsidx += 1; in iter_ns()
784 if (as->as.dns.nsidx <= as->as_ctx->ac_nscount) in iter_ns()
786 as->as.dns.nsidx = 0; in iter_ns()
787 as->as.dns.nsloop++; in iter_ns()
788 DPRINT("asr: iter_ns(): cycle %i\n", as->as.dns.nsloop); in iter_ns()
791 as->as_timeout = 1000 * (as->as_ctx->ac_nstimeout << as->as.dns.nsloop); in iter_ns()
792 if (as->as.dns.nsloop > 0) in iter_ns()