Apply suggestions from code review

Co-authored-by: Willem Toorop <willem@nlnetlabs.nl>
This commit is contained in:
tcarpay 2021-11-08 11:02:54 +01:00 committed by GitHub
parent cb48d9e4a1
commit fa73142b79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 17 deletions

View file

@ -1003,9 +1003,6 @@ answer_notify(struct worker* w, struct query_info* qinfo,
edns->udp_size = EDNS_ADVERTISED_SIZE; edns->udp_size = EDNS_ADVERTISED_SIZE;
edns->ext_rcode = 0; edns->ext_rcode = 0;
edns->bits &= EDNS_DO; edns->bits &= EDNS_DO;
edns->opt_list_in = NULL;
edns->opt_list_out = 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);

View file

@ -831,6 +831,10 @@ attach_edns_record_max_msg_sz(sldns_buffer* pkt, struct edns_data* edns,
sldns_buffer_write_u16(pkt, 0); /* rdatalen */ sldns_buffer_write_u16(pkt, 0); /* rdatalen */
/* write rdata */ /* write rdata */
for(opt=edns->opt_list_modules_out; opt; opt=opt->next) { for(opt=edns->opt_list_modules_out; opt; opt=opt->next) {
if (opt->opt_code == LDNS_EDNS_PADDING) {
padding_option = opt;
continue;
}
sldns_buffer_write_u16(pkt, opt->opt_code); sldns_buffer_write_u16(pkt, opt->opt_code);
sldns_buffer_write_u16(pkt, opt->opt_len); sldns_buffer_write_u16(pkt, opt->opt_len);
if(opt->opt_len != 0) if(opt->opt_len != 0)

View file

@ -968,7 +968,6 @@ parse_edns_options(uint8_t* rdata_ptr, size_t rdata_len,
log_err("out of memory"); log_err("out of memory");
return LDNS_RCODE_SERVFAIL; return LDNS_RCODE_SERVFAIL;
} }
c->tcp_keepalive = 1;
} }
/* while still more options, and have code+len to read */ /* while still more options, and have code+len to read */
@ -1031,17 +1030,17 @@ parse_edns_options(uint8_t* rdata_ptr, size_t rdata_len,
break; break;
default: default:
if(!edns_opt_list_append(&edns->opt_list_in,
opt_code, opt_len, rdata_ptr, region)) {
log_err("out of memory");
return LDNS_RCODE_SERVFAIL;
}
break; break;
} }
if(!edns_opt_list_append(&edns->opt_list_in,
opt_code, opt_len, rdata_ptr, region)) {
log_err("out of memory");
return LDNS_RCODE_SERVFAIL;
}
rdata_ptr += opt_len; rdata_ptr += opt_len;
rdata_len -= opt_len; rdata_len -= opt_len;
} }
return 0; return LDNS_RCODE_NOERROR;
} }
int int
@ -1109,7 +1108,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns,
rdata_len = found->rr_first->size-2; rdata_len = found->rr_first->size-2;
rdata_ptr = found->rr_first->ttl_data+6; rdata_ptr = found->rr_first->ttl_data+6;
if(parse_edns_options(rdata_ptr, rdata_len, edns, NULL, NULL, region)) if(parse_edns_options(rdata_ptr, rdata_len, edns, NULL, NULL, region))
return 0; return LDNS_RCODE_NOERROR;
/* ignore rrsigs */ /* ignore rrsigs */
@ -1187,12 +1186,8 @@ parse_edns_from_pkt(sldns_buffer* pkt, struct edns_data* edns,
if(sldns_buffer_remaining(pkt) < rdata_len) if(sldns_buffer_remaining(pkt) < rdata_len)
return LDNS_RCODE_FORMERR; return LDNS_RCODE_FORMERR;
rdata_ptr = sldns_buffer_current(pkt); rdata_ptr = sldns_buffer_current(pkt);
rcode = parse_edns_options(rdata_ptr, rdata_len, edns, cfg, c, region);
if(rcode)
return rcode;
/* ignore rrsigs */ /* ignore rrsigs */
return parse_edns_options(rdata_ptr, rdata_len, edns, cfg, c, region);
return 0; return 0;
} }

View file

@ -235,7 +235,7 @@ struct edns_data {
struct edns_option* opt_list_out; struct edns_option* opt_list_out;
/** rdata element list of outgoing edns options from modules /** rdata element list of outgoing edns options from modules
* or NULL if none */ * or NULL if none */
struct edns_option* opt_list_modules_out; struct edns_option* opt_list_inplace_cb_out;
/** block size to pad */ /** block size to pad */
uint16_t padding_block_size; uint16_t padding_block_size;
}; };