mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
Modules have their own outgoing ends options list
But nothing happens with it yet
This commit is contained in:
parent
ecb0b44ba8
commit
3e6eeb504d
6 changed files with 13 additions and 0 deletions
|
|
@ -1012,6 +1012,7 @@ answer_notify(struct worker* w, struct query_info* qinfo,
|
||||||
edns->ext_rcode = 0;
|
edns->ext_rcode = 0;
|
||||||
edns->bits &= EDNS_DO;
|
edns->bits &= EDNS_DO;
|
||||||
edns->opt_list = NULL;
|
edns->opt_list = NULL;
|
||||||
|
edns->opt_list_modules_out = NULL;
|
||||||
error_encode(pkt, rcode, qinfo,
|
error_encode(pkt, rcode, qinfo,
|
||||||
*(uint16_t*)(void *)sldns_buffer_begin(pkt),
|
*(uint16_t*)(void *)sldns_buffer_begin(pkt),
|
||||||
sldns_buffer_read_u16_at(pkt, 2), edns);
|
sldns_buffer_read_u16_at(pkt, 2), edns);
|
||||||
|
|
@ -1270,6 +1271,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
|
||||||
edns.udp_size = EDNS_ADVERTISED_SIZE;
|
edns.udp_size = EDNS_ADVERTISED_SIZE;
|
||||||
edns.bits &= EDNS_DO;
|
edns.bits &= EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
edns.padding_block_size = 0;
|
edns.padding_block_size = 0;
|
||||||
verbose(VERB_ALGO, "query with bad edns version.");
|
verbose(VERB_ALGO, "query with bad edns version.");
|
||||||
log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
|
log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
|
||||||
|
|
@ -1297,6 +1299,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
|
||||||
edns.udp_size = EDNS_ADVERTISED_SIZE;
|
edns.udp_size = EDNS_ADVERTISED_SIZE;
|
||||||
edns.bits &= EDNS_DO;
|
edns.bits &= EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
verbose(VERB_ALGO, "query with bad edns keepalive.");
|
verbose(VERB_ALGO, "query with bad edns keepalive.");
|
||||||
log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
|
log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
|
||||||
error_encode(c->buffer, LDNS_RCODE_FORMERR, &qinfo,
|
error_encode(c->buffer, LDNS_RCODE_FORMERR, &qinfo,
|
||||||
|
|
|
||||||
|
|
@ -601,6 +601,7 @@ setup_qinfo_edns(struct libworker* w, struct ctx_query* q,
|
||||||
edns->edns_version = 0;
|
edns->edns_version = 0;
|
||||||
edns->bits = EDNS_DO;
|
edns->bits = EDNS_DO;
|
||||||
edns->opt_list = NULL;
|
edns->opt_list = NULL;
|
||||||
|
edns->opt_list_modules_out = NULL;
|
||||||
edns->padding_block_size = 0;
|
edns->padding_block_size = 0;
|
||||||
if(sldns_buffer_capacity(w->back->udp_buff) < 65535)
|
if(sldns_buffer_capacity(w->back->udp_buff) < 65535)
|
||||||
edns->udp_size = (uint16_t)sldns_buffer_capacity(
|
edns->udp_size = (uint16_t)sldns_buffer_capacity(
|
||||||
|
|
|
||||||
|
|
@ -5359,6 +5359,7 @@ xfr_transfer_lookup_host(struct auth_xfer* xfr, struct module_env* env)
|
||||||
edns.edns_version = 0;
|
edns.edns_version = 0;
|
||||||
edns.bits = EDNS_DO;
|
edns.bits = EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
edns.padding_block_size = 0;
|
edns.padding_block_size = 0;
|
||||||
if(sldns_buffer_capacity(buf) < 65535)
|
if(sldns_buffer_capacity(buf) < 65535)
|
||||||
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
||||||
|
|
@ -6548,6 +6549,7 @@ xfr_probe_lookup_host(struct auth_xfer* xfr, struct module_env* env)
|
||||||
edns.edns_version = 0;
|
edns.edns_version = 0;
|
||||||
edns.bits = EDNS_DO;
|
edns.bits = EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
edns.padding_block_size = 0;
|
edns.padding_block_size = 0;
|
||||||
if(sldns_buffer_capacity(buf) < 65535)
|
if(sldns_buffer_capacity(buf) < 65535)
|
||||||
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
||||||
|
|
@ -8323,6 +8325,7 @@ zonemd_lookup_dnskey(struct auth_zone* z, struct module_env* env)
|
||||||
edns.edns_version = 0;
|
edns.edns_version = 0;
|
||||||
edns.bits = EDNS_DO;
|
edns.bits = EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
if(sldns_buffer_capacity(buf) < 65535)
|
if(sldns_buffer_capacity(buf) < 65535)
|
||||||
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
||||||
else edns.udp_size = 65535;
|
else edns.udp_size = 65535;
|
||||||
|
|
|
||||||
|
|
@ -1020,6 +1020,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns,
|
||||||
edns->bits = sldns_read_uint16(&found->rr_last->ttl_data[2]);
|
edns->bits = sldns_read_uint16(&found->rr_last->ttl_data[2]);
|
||||||
edns->udp_size = ntohs(found->rrset_class);
|
edns->udp_size = ntohs(found->rrset_class);
|
||||||
edns->opt_list = NULL;
|
edns->opt_list = NULL;
|
||||||
|
edns->opt_list_modules_out = NULL;
|
||||||
edns->padding_block_size = 0;
|
edns->padding_block_size = 0;
|
||||||
|
|
||||||
/* take the options */
|
/* take the options */
|
||||||
|
|
@ -1094,6 +1095,7 @@ parse_edns_from_pkt(sldns_buffer* pkt, struct edns_data* edns,
|
||||||
edns->edns_version = sldns_buffer_read_u8(pkt);
|
edns->edns_version = sldns_buffer_read_u8(pkt);
|
||||||
edns->bits = sldns_buffer_read_u16(pkt);
|
edns->bits = sldns_buffer_read_u16(pkt);
|
||||||
edns->opt_list = NULL;
|
edns->opt_list = NULL;
|
||||||
|
edns->opt_list_modules_out = NULL;
|
||||||
edns->padding_block_size = 0;
|
edns->padding_block_size = 0;
|
||||||
|
|
||||||
/* take the options */
|
/* take the options */
|
||||||
|
|
|
||||||
|
|
@ -227,6 +227,9 @@ struct edns_data {
|
||||||
uint16_t udp_size;
|
uint16_t udp_size;
|
||||||
/** rdata element list, or NULL if none */
|
/** rdata element list, or NULL if none */
|
||||||
struct edns_option* opt_list;
|
struct edns_option* opt_list;
|
||||||
|
/** rdata element list of outgoing edns options from modules
|
||||||
|
* or NULL if none */
|
||||||
|
struct edns_option* opt_list_modules_out;
|
||||||
/** block size to pad */
|
/** block size to pad */
|
||||||
uint16_t padding_block_size;
|
uint16_t padding_block_size;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2378,6 +2378,7 @@ probe_anchor(struct module_env* env, struct trust_anchor* tp)
|
||||||
edns.edns_version = 0;
|
edns.edns_version = 0;
|
||||||
edns.bits = EDNS_DO;
|
edns.bits = EDNS_DO;
|
||||||
edns.opt_list = NULL;
|
edns.opt_list = NULL;
|
||||||
|
edns.opt_list_modules_out = NULL;
|
||||||
edns.padding_block_size = 0;
|
edns.padding_block_size = 0;
|
||||||
if(sldns_buffer_capacity(buf) < 65535)
|
if(sldns_buffer_capacity(buf) < 65535)
|
||||||
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
edns.udp_size = (uint16_t)sldns_buffer_capacity(buf);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue