]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Apply suggestions from code review
authortcarpay <8014108+TCY16@users.noreply.github.com>
Mon, 8 Nov 2021 10:02:54 +0000 (11:02 +0100)
committerGitHub <noreply@github.com>
Mon, 8 Nov 2021 10:02:54 +0000 (11:02 +0100)
Co-authored-by: Willem Toorop <willem@nlnetlabs.nl>
daemon/worker.c
util/data/msgencode.c
util/data/msgparse.c
util/data/msgparse.h

index 6a13dbe290498a380711cac823e499e8c8198cd1..b9103488f111587f82066ca8975b8c5078cd4d10 100644 (file)
@@ -1003,9 +1003,6 @@ answer_notify(struct worker* w, struct query_info* qinfo,
        edns->udp_size = EDNS_ADVERTISED_SIZE;
        edns->ext_rcode = 0;
        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,
                *(uint16_t*)(void *)sldns_buffer_begin(pkt),
                sldns_buffer_read_u16_at(pkt, 2), edns);
index 05c0d1a99b245b5cbf0308d04c075c0fcb8ff784..f0017089d1ca613db2cda512ee9613085b6f0f40 100644 (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 */
        /* write rdata */
        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_len);
                if(opt->opt_len != 0)
index 35f58c2fed8926bf96b8e6b59b6dbb521bf0cd70..3e6a0affa1939bdf60f888a4e6b6350765da0859 100644 (file)
@@ -968,7 +968,6 @@ parse_edns_options(uint8_t* rdata_ptr, size_t rdata_len,
                        log_err("out of memory");
                        return LDNS_RCODE_SERVFAIL;
                }
-               c->tcp_keepalive = 1;
        }
 
        /* 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;
 
                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;
                }
+               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_len -= opt_len;
        }
-       return 0;
+       return LDNS_RCODE_NOERROR;
 }
 
 int 
@@ -1109,7 +1108,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns,
        rdata_len = found->rr_first->size-2;
        rdata_ptr = found->rr_first->ttl_data+6;
        if(parse_edns_options(rdata_ptr, rdata_len, edns, NULL, NULL, region))
-               return 0;
+               return LDNS_RCODE_NOERROR;
 
        /* ignore rrsigs */
 
@@ -1187,12 +1186,8 @@ parse_edns_from_pkt(sldns_buffer* pkt, struct edns_data* edns,
        if(sldns_buffer_remaining(pkt) < rdata_len)
                return LDNS_RCODE_FORMERR;
        rdata_ptr = sldns_buffer_current(pkt);
-       rcode = parse_edns_options(rdata_ptr, rdata_len, edns, cfg, c, region);
-       if(rcode)
-               return rcode;
-
        /* ignore rrsigs */
-
+       return parse_edns_options(rdata_ptr, rdata_len, edns, cfg, c, region);
        return 0;
 }
 
index 51816176055bb6d136a0005f6aa5d122fe035976..0c70d3b15f82225d0e8be42ef6dd3f97562e4066 100644 (file)
@@ -235,7 +235,7 @@ struct edns_data {
        struct edns_option* opt_list_out;
        /** rdata element list of outgoing edns options from modules
         * or NULL if none */
-       struct edns_option* opt_list_modules_out;
+       struct edns_option* opt_list_inplace_cb_out;
        /** block size to pad */
        uint16_t padding_block_size;
 };