Lines Matching defs:edns

71 #include "util/edns.h"
554 struct edns_data* edns)
565 uint16_t udpsize = edns->udp_size;
593 edns->edns_version = EDNS_ADVERTISED_VERSION;
594 edns->udp_size = EDNS_ADVERTISED_SIZE;
595 edns->ext_rcode = 0;
596 edns->bits &= EDNS_DO;
598 msg->rep, LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
604 edns_opt_list_append_ede(&edns->opt_list_out,
609 &msg->qinfo, id, flags, edns);
631 edns->edns_version = EDNS_ADVERTISED_VERSION;
632 edns->udp_size = EDNS_ADVERTISED_SIZE;
633 edns->ext_rcode = 0;
634 edns->bits &= EDNS_DO;
635 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
636 edns->edns_present = 0;
638 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
648 edns_opt_list_append_ede(&edns->opt_list_out,
654 udpsize, edns, (int)(edns->bits & EDNS_DO), secure)) {
656 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
658 edns->opt_list_inplace_cb_out = NULL;
660 &msg->qinfo, id, flags, edns);
737 struct comm_reply* repinfo, struct edns_data* edns)
740 uint16_t udpsize = edns->udp_size;
795 edns->edns_version = EDNS_ADVERTISED_VERSION;
796 edns->udp_size = EDNS_ADVERTISED_SIZE;
797 edns->ext_rcode = 0;
798 edns->bits &= EDNS_DO;
799 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
800 edns->edns_present = 0;
802 LDNS_RCODE_SERVFAIL, edns, repinfo, worker->scratchpad,
807 edns_opt_list_append_ede(&edns->opt_list_out,
812 qinfo, id, flags, edns);
837 edns->edns_version = EDNS_ADVERTISED_VERSION;
838 edns->udp_size = EDNS_ADVERTISED_SIZE;
839 edns->ext_rcode = 0;
840 edns->bits &= EDNS_DO;
841 if(worker->env.cfg->disable_edns_do && (edns->bits & EDNS_DO))
842 edns->edns_present = 0;
875 EDNS_OPT_LIST_APPEND_EDE(&edns->opt_list_out,
883 edns_opt_list_append_ede(&edns->opt_list_out,
888 (int)(flags&LDNS_RCODE_MASK), edns, repinfo, worker->scratchpad,
893 udpsize, edns, (int)(edns->bits & EDNS_DO),
896 NULL, NULL, LDNS_RCODE_SERVFAIL, edns, repinfo,
898 edns->opt_list_inplace_cb_out = NULL;
900 qinfo, id, flags, edns);
960 * @param edns: edns reply information.
965 chaos_replystr(sldns_buffer* pkt, char** str, int num, struct edns_data* edns,
971 size_t udpsize = edns->udp_size;
972 edns->edns_version = EDNS_ADVERTISED_VERSION;
973 edns->udp_size = EDNS_ADVERTISED_SIZE;
974 edns->bits &= EDNS_DO;
976 LDNS_RCODE_NOERROR, edns, repinfo, worker->scratchpad,
978 edns->opt_list_inplace_cb_out = NULL;
995 calc_edns_field_size(edns) > udpsize) {
1010 sldns_buffer_limit(pkt)+calc_edns_field_size(edns))
1011 attach_edns_record(pkt, edns);
1016 chaos_replyonestr(sldns_buffer* pkt, const char* str, struct edns_data* edns,
1019 chaos_replystr(pkt, (char**)&str, 1, edns, worker, repinfo);
1025 * @param edns: edns reply information.
1030 chaos_trustanchor(sldns_buffer* pkt, struct edns_data* edns, struct worker* w,
1042 chaos_replystr(pkt, NULL, 0, edns, w, repinfo);
1076 chaos_replystr(pkt, str_array, num, edns, w, repinfo);
1084 * @param edns: edns info from query.
1091 struct edns_data* edns, struct comm_reply* repinfo, sldns_buffer* pkt)
1107 chaos_replyonestr(pkt, buf, edns, w, repinfo);
1110 chaos_replyonestr(pkt, "no hostname", edns, w, repinfo);
1113 else chaos_replyonestr(pkt, cfg->identity, edns, w, repinfo);
1124 chaos_replyonestr(pkt, PACKAGE_STRING, edns, w, repinfo);
1125 else chaos_replyonestr(pkt, cfg->version, edns, w, repinfo);
1133 chaos_trustanchor(pkt, edns, w, repinfo);
1146 * @param edns: edns info from query.
1153 struct edns_data* edns, sldns_buffer* pkt,
1191 edns->edns_version = EDNS_ADVERTISED_VERSION;
1192 edns->udp_size = EDNS_ADVERTISED_SIZE;
1193 edns->ext_rcode = 0;
1194 edns->bits &= EDNS_DO;
1197 sldns_buffer_read_u16_at(pkt, 2), edns);
1456 struct edns_data edns;
1659 c->buffer, &edns, worker->env.cfg, c, repinfo,
1664 verbose(VERB_ALGO, "worker parse edns: formerror.");
1675 if(edns.edns_present) {
1676 if(edns.edns_version != 0) {
1677 edns.opt_list_in = NULL;
1678 edns.opt_list_out = NULL;
1679 edns.opt_list_inplace_cb_out = NULL;
1680 verbose(VERB_ALGO, "query with bad edns version.");
1685 sldns_buffer_read_u16_at(c->buffer, 2), 0, &edns);
1689 if(edns.udp_size < NORMAL_UDP_SIZE &&
1692 (int)edns.udp_size);
1695 edns.udp_size = NORMAL_UDP_SIZE;
1700 server_stats_downstream_cookie(&worker->stats, &edns);
1707 repinfo->client_addrlen, edns.cookie_valid,
1719 else if(edns.cookie_valid)
1725 else if(edns.cookie_present) {
1732 0, &edns);
1741 EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
1749 &edns);
1754 if(edns.udp_size > worker->daemon->cfg->max_udp_size &&
1758 " (%d to max-udp-size)", (int)edns.udp_size);
1761 edns.udp_size = worker->daemon->cfg->max_udp_size;
1763 if(edns.udp_size < LDNS_HEADER_SIZE) {
1764 verbose(VERB_ALGO, "worker request: edns is too small.");
1780 qinfo.qclass, &edns, repinfo);
1782 edns.udp_size = 65535; /* max size for TCP replies */
1784 &edns, repinfo, c->buffer)) {
1790 answer_notify(worker, &qinfo, &edns, c->buffer,
1796 &edns, c->buffer, worker->scratchpad, repinfo, acladdr->taglist,
1810 &worker->env, &qinfo, &edns, c->buffer, worker->scratchpad,
1822 &qinfo, &edns, repinfo, c->buffer, worker->scratchpad)) {
1859 EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
1864 sldns_buffer_read_u16_at(c->buffer, 2), &edns);
1909 /* Keep the original edns list around. The pointer could change if there is
1913 original_edns_list = edns.opt_list_in;
1919 if(!edns_bypass_cache_stage(edns.opt_list_in, &worker->env)) {
1931 &edns)) {
1993 &edns)) {
2015 &edns, repinfo, *(uint16_t*)(void *)sldns_buffer_begin(c->buffer),