]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
no more AD bits, except when DO is set.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 9 Oct 2007 15:33:40 +0000 (15:33 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 9 Oct 2007 15:33:40 +0000 (15:33 +0000)
git-svn-id: file:///svn/unbound/trunk@672 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/worker.c
doc/Changelog
testcode/fake_event.c
testcode/ldns-testpkts.c
testdata/iter_emptydp.rpl
testdata/iter_primenoglue.rpl
testdata/val_anchor_nx.rpl
testdata/val_anchor_nx_nosig.rpl
testdata/val_ans_dsent.rpl
util/data/msgencode.c

index 4ce2624bb7df1732e7fabfc35a522c30fe6567c1..7ed290d498aea16c7caa9a21de45cc471d8e71e3 100644 (file)
@@ -723,6 +723,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                LDNS_RCODE_SET(ldns_buffer_begin(c->buffer), 
                        LDNS_RCODE_SERVFAIL);
                ldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
+               ldns_buffer_write_at(c->buffer, 4, 
+                       (uint8_t*)"\0\0\0\0\0\0\0\0", 8);
                ldns_buffer_flip(c->buffer);
                return 1;
        }
index 9bd8ddf38763a49aba8d5b950efae824324e8540..35c1d596bb3a3c8e45ebb5c1f58993d9cb70e889 100644 (file)
@@ -5,6 +5,8 @@
        - callback checks for event callbacks done from mini_event. Because
          of deletions cannot do this from netevent. This means when using
          libevent the protection does not work on event-callbacks.
+       - fixup too small reply (did not zero counts).
+       - fixup reply no longer AD bit when query without DO bit.
 
 5 October 2007: Wouter
        - function pointer whitelist.
index 7ff389998676e23197186034e005f24e24376fb5..ba53bc74db1883861241fda95dfb00e42f3d2817 100644 (file)
@@ -359,6 +359,7 @@ fake_front_query(struct replay_runtime* runtime, struct replay_moment *todo)
        else    repinfo.c->type = comm_udp;
        fill_buffer_with_reply(repinfo.c->buffer, todo->match, NULL);
        log_info("testbound: incoming QUERY");
+       log_pkt("query pkt", todo->match->reply_list->reply);
        /* call the callback for incoming queries */
        if((*runtime->callback_query)(repinfo.c, runtime->cb_arg, 
                NETEVENT_NOERROR, &repinfo)) {
index 4c13692b791a4605f9dfc8b4840fd9e43eb2fe01..c4e6b6c06d980bbb3124ce163b765d23a1ff6257 100644 (file)
@@ -185,6 +185,7 @@ static void replyline(const char* line, ldns_pkt *reply)
                } else if(str_keyword(&parse, "AD")) {
                        ldns_pkt_set_ad(reply, true);
                } else if(str_keyword(&parse, "DO")) {
+                       ldns_pkt_set_edns_udp_size(reply, 4096);
                        ldns_pkt_set_edns_do(reply, true);
                } else {
                        error("could not parse REPLY: '%s'", parse);
index 40c9e9c095ce14cd6720cee19301f172e12eb9cf..fa0444437c770a92a3d38f9cb6256231ed2faef6 100644 (file)
@@ -148,7 +148,7 @@ RANGE_END
 
 STEP 1 QUERY
 ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
 SECTION QUESTION
 www.example.com. IN A
 ENTRY_END
@@ -162,10 +162,13 @@ SECTION QUESTION
 www.example.com. IN A
 SECTION ANSWER
 www.example.com. IN A  10.20.30.40
+www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
+example.com.    3600    IN      RRSIG   NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
 SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
+ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
 ENTRY_END
 
 ; make sure glue fetch is done.
index 74227f2e8f6d0bcdfce9fb08a41c05e0321cf6be..c5ebfa1f4399698c211a4150f6e0db1048be6a1f 100644 (file)
@@ -197,7 +197,7 @@ RANGE_END
 
 STEP 1 QUERY
 ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
 SECTION QUESTION
 www.example.com. IN A
 ENTRY_END
@@ -211,10 +211,13 @@ SECTION QUESTION
 www.example.com. IN A
 SECTION ANSWER
 www.example.com. IN A  10.20.30.40
+www.example.com.        3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
 SECTION AUTHORITY
 example.com.   IN NS   ns.example.com.
+example.com.    3600    IN      RRSIG   NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
 SECTION ADDITIONAL
 ns.example.com.                IN      A       1.2.3.4
+ns.example.com. 3600    IN      RRSIG   A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
 ENTRY_END
 
 ; make sure glue fetch is done.
index b4bec845d99b49acc74852942dfda0d4799f735e..43c614f901201cde95d511ade45b4deee822704c 100644 (file)
@@ -165,7 +165,7 @@ RANGE_END
 
 STEP 1 QUERY
 ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
 SECTION QUESTION
 www.sub.example.com. IN A
 ENTRY_END
@@ -180,6 +180,11 @@ www.sub.example.com. IN A
 SECTION ANSWER
 SECTION AUTHORITY
 example.com. SOA ns.example.com. h.example.com. 2007090504 1800 1800 2419200 7200
+example.com.    3600    IN      RRSIG   SOA 3 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFC5uwIHSehZtetK2CMNXttSFUB0XAhROFDAgy/FaxR8zFXJzyPdpQG93Sw== ;{id = 2854}
+blub.example.com. NSEC znub.example.com. A MX RRSIG NSEC
+blub.example.com.       3600    IN      RRSIG   NSEC 3 3 3600 20070926134150 20070829134150 2854 example.com. MCwCFCic/WwyMtdDE/84g8l0S0M8AOtnAhR88hQEp5cD5XQ3EmQ79RUuNTCgdg== ;{id = 2854}
+example.com. NSEC blub.example.com. SOA NS MX DNSKEY RRSIG NSEC
+example.com.    3600    IN      RRSIG   NSEC 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFFYX7iNIlT79gNFFlvnn44Ittm6HAhUAg7u0hZ4to87qyfkonZu2jVLW3xw= ;{id = 2854}
 SECTION ADDITIONAL
 ENTRY_END
 
index 668e47c683833937aaf6439e941bf664f42cd24a..94320b5010cf1fc31885fba1f88fc35483c6c49d 100644 (file)
@@ -164,7 +164,7 @@ RANGE_END
 
 STEP 1 QUERY
 ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
 SECTION QUESTION
 www.sub.example.com. IN A
 ENTRY_END
@@ -179,6 +179,11 @@ www.sub.example.com. IN A
 SECTION ANSWER
 SECTION AUTHORITY
 example.com. SOA ns.example.com. h.example.com. 2007090504 1800 1800 2419200 7200
+example.com.    3600    IN      RRSIG   SOA 3 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFC5uwIHSehZtetK2CMNXttSFUB0XAhROFDAgy/FaxR8zFXJzyPdpQG93Sw== ;{id = 2854}
+blub.example.com. NSEC znub.example.com. A MX RRSIG NSEC
+blub.example.com.       3600    IN      RRSIG   NSEC 3 3 3600 20070926134150 20070829134150 2854 example.com. MCwCFCic/WwyMtdDE/84g8l0S0M8AOtnAhR88hQEp5cD5XQ3EmQ79RUuNTCgdg== ;{id = 2854}
+example.com. NSEC blub.example.com. SOA NS MX DNSKEY RRSIG NSEC
+example.com.    3600    IN      RRSIG   NSEC 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFFYX7iNIlT79gNFFlvnn44Ittm6HAhUAg7u0hZ4to87qyfkonZu2jVLW3xw= ;{id = 2854}
 SECTION ADDITIONAL
 ENTRY_END
 
index 41ba05bbba626663fd714c2d5ab8e67583eb1471..b9e83d849d48640a2255d75ea73265a2f690e060 100644 (file)
@@ -183,7 +183,7 @@ RANGE_END
 
 STEP 1 QUERY
 ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
 SECTION QUESTION
 328.0.0.194.example.com. IN A
 ENTRY_END
@@ -197,6 +197,7 @@ SECTION QUESTION
 328.0.0.194.example.com. IN A
 SECTION ANSWER
 328.0.0.194.example.com.       3600    IN      A       11.11.11.11
+328.0.0.194.example.com.        3600    IN      RRSIG   A 5 6 3600 20070926135752 20070829135752 30899 0.0.194.example.com. chZW77mqywhw/4ch6BxXQ4EbFgb9zgh2xF75FLlKq/7ey6CfHSJRpJRjRqtMTn+1i18UL2B4nPS/WnK5DZeqlA== ;{id = 30899}
 SECTION AUTHORITY
 SECTION ADDITIONAL
 ENTRY_END
index 36fa285f6fd5e37d57bbb0126681e9e516613843..4d199ef05591968beb2a45cf6ee39f0c6fcfcaa7 100644 (file)
@@ -721,7 +721,7 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
                /* remove AA bit, copy RD and CD bits from query. */
                flags = (rep->flags & ~BIT_AA) | (qflags & (BIT_RD|BIT_CD)); 
        }
-       if(secure)
+       if(secure && dnssec)
                flags |= BIT_AD;
        log_assert(flags & BIT_QR); /* QR bit must be on in our replies */
        if(udpsize < LDNS_HEADER_SIZE)