Lines Matching defs:edns

71 #include "util/edns.h"
467 struct edns_data* edns)
478 uint16_t udpsize = edns->udp_size;
506 edns->edns_version = EDNS_ADVERTISED_VERSION;
507 edns->udp_size = EDNS_ADVERTISED_SIZE;
508 edns->ext_rcode = 0;
509 edns->bits &= EDNS_DO;
511 msg->rep, LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
517 edns_opt_list_append_ede(&edns->opt_list_out,
522 &msg->qinfo, id, flags, edns);
544 edns->edns_version = EDNS_ADVERTISED_VERSION;
545 edns->udp_size = EDNS_ADVERTISED_SIZE;
546 edns->ext_rcode = 0;
547 edns->bits &= EDNS_DO;
548 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
549 edns->edns_present = 0;
551 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
561 edns_opt_list_append_ede(&edns->opt_list_out,
567 udpsize, edns, (int)(edns->bits & EDNS_DO), secure)) {
569 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
571 edns->opt_list_inplace_cb_out = NULL;
573 &msg->qinfo, id, flags, edns);
649 struct comm_reply* repinfo, struct edns_data* edns)
652 uint16_t udpsize = edns->udp_size;
707 edns->edns_version = EDNS_ADVERTISED_VERSION;
708 edns->udp_size = EDNS_ADVERTISED_SIZE;
709 edns->ext_rcode = 0;
710 edns->bits &= EDNS_DO;
711 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
712 edns->edns_present = 0;
714 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
719 edns_opt_list_append_ede(&edns->opt_list_out,
724 qinfo, id, flags, edns);
749 edns->edns_version = EDNS_ADVERTISED_VERSION;
750 edns->udp_size = EDNS_ADVERTISED_SIZE;
751 edns->ext_rcode = 0;
752 edns->bits &= EDNS_DO;
753 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
754 edns->edns_present = 0;
786 EDNS_OPT_LIST_APPEND_EDE(&edns->opt_list_out,
794 edns_opt_list_append_ede(&edns->opt_list_out,
799 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
804 udpsize, edns, (int)(edns->bits & EDNS_DO),
807 NULL, NULL, LDNS_RCODE_SERVFAIL, edns, repinfo,
809 edns->opt_list_inplace_cb_out = NULL;
811 qinfo, id, flags, edns);
871 * @param edns: edns reply information.
876 chaos_replystr(sldns_buffer* pkt, char** str, int num, struct edns_data* edns,
882 size_t udpsize = edns->udp_size;
883 edns->edns_version = EDNS_ADVERTISED_VERSION;
884 edns->udp_size = EDNS_ADVERTISED_SIZE;
885 edns->bits &= EDNS_DO;
887 LDNS_RCODE_NOERROR, edns, repinfo, worker->scratchpad,
889 edns->opt_list_inplace_cb_out = NULL;
906 calc_edns_field_size(edns) > udpsize) {
921 sldns_buffer_limit(pkt)+calc_edns_field_size(edns))
922 attach_edns_record(pkt, edns);
927 chaos_replyonestr(sldns_buffer* pkt, const char* str, struct edns_data* edns,
930 chaos_replystr(pkt, (char**)&str, 1, edns, worker, repinfo);
936 * @param edns: edns reply information.
941 chaos_trustanchor(sldns_buffer* pkt, struct edns_data* edns, struct worker* w,
953 chaos_replystr(pkt, NULL, 0, edns, w, repinfo);
987 chaos_replystr(pkt, str_array, num, edns, w, repinfo);
995 * @param edns: edns info from query.
1002 struct edns_data* edns, struct comm_reply* repinfo, sldns_buffer* pkt)
1018 chaos_replyonestr(pkt, buf, edns, w, repinfo);
1021 chaos_replyonestr(pkt, "no hostname", edns, w, repinfo);
1024 else chaos_replyonestr(pkt, cfg->identity, edns, w, repinfo);
1035 chaos_replyonestr(pkt, PACKAGE_STRING, edns, w, repinfo);
1036 else chaos_replyonestr(pkt, cfg->version, edns, w, repinfo);
1044 chaos_trustanchor(pkt, edns, w, repinfo);
1057 * @param edns: edns info from query.
1064 struct edns_data* edns, sldns_buffer* pkt,
1102 edns->edns_version = EDNS_ADVERTISED_VERSION;
1103 edns->udp_size = EDNS_ADVERTISED_SIZE;
1104 edns->ext_rcode = 0;
1105 edns->bits &= EDNS_DO;
1108 sldns_buffer_read_u16_at(pkt, 2), edns);
1367 struct edns_data edns;
1570 c->buffer, &edns, worker->env.cfg, c, repinfo,
1575 verbose(VERB_ALGO, "worker parse edns: formerror.");
1586 if(edns.edns_present) {
1587 if(edns.edns_version != 0) {
1588 edns.opt_list_in = NULL;
1589 edns.opt_list_out = NULL;
1590 edns.opt_list_inplace_cb_out = NULL;
1591 verbose(VERB_ALGO, "query with bad edns version.");
1596 sldns_buffer_read_u16_at(c->buffer, 2), 0, &edns);
1600 if(edns.udp_size < NORMAL_UDP_SIZE &&
1603 (int)edns.udp_size);
1606 edns.udp_size = NORMAL_UDP_SIZE;
1611 server_stats_downstream_cookie(&worker->stats, &edns);
1618 repinfo->client_addrlen, edns.cookie_valid,
1630 else if(edns.cookie_valid)
1636 else if(edns.cookie_present) {
1643 0, &edns);
1652 EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
1660 &edns);
1665 if(edns.udp_size > worker->daemon->cfg->max_udp_size &&
1669 " (%d to max-udp-size)", (int)edns.udp_size);
1672 edns.udp_size = worker->daemon->cfg->max_udp_size;
1674 if(edns.udp_size < LDNS_HEADER_SIZE) {
1675 verbose(VERB_ALGO, "worker request: edns is too small.");
1691 qinfo.qclass, &edns, repinfo);
1693 edns.udp_size = 65535; /* max size for TCP replies */
1695 &edns, repinfo, c->buffer)) {
1701 answer_notify(worker, &qinfo, &edns, c->buffer,
1707 &edns, c->buffer, worker->scratchpad, repinfo, acladdr->taglist,
1721 &worker->env, &qinfo, &edns, c->buffer, worker->scratchpad,
1733 &qinfo, &edns, repinfo, c->buffer, worker->scratchpad)) {
1770 EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
1775 sldns_buffer_read_u16_at(c->buffer, 2), &edns);
1820 /* Keep the original edns list around. The pointer could change if there is
1824 original_edns_list = edns.opt_list_in;
1830 if(!edns_bypass_cache_stage(edns.opt_list_in, &worker->env)) {
1842 &edns)) {
1904 &edns)) {
1926 &edns, repinfo, *(uint16_t*)(void *)sldns_buffer_begin(c->buffer),