3 module-config: "validator iterator"
4 qname-minimisation: "no"
7 serve-expired-reply-ttl: 123
10 ede-serve-expired: yes
18 SCENARIO_BEGIN Test serve-expired with client-timeout and a SERVFAIL upstream reply
20 ; - query for example.com. IN A
21 ; - answer from upstream is SERVFAIL; will be cached for NORR_TTL(5)
22 ; - check that the client gets the SERVFAIL; also cached
23 ; - query again right after the TTL expired
24 ; - cached SERVFAIL should be ignored and upstream queried
25 ; - answer from upstream is still SERVFAIL; the cached error response will be
26 ; refreshed for another NORR_TTL(5)
27 ; - check that the client gets the SERVFAIL
28 ; - query again; the upstream now has the answer available
29 ; - check that we get the refreshed cached response instead
36 MATCH opcode qtype qname
48 MATCH opcode qtype qname
54 example.com. 10 IN NS ns.example.com.
56 ns.example.com. 10 IN A 1.2.3.4
60 MATCH opcode qtype qname
66 example.com. 10 IN A 5.6.7.8
68 example.com. 10 IN NS ns.example.com.
70 ns.example.com. 10 IN A 1.2.3.4
82 ; Check that we get the SERVFAIL (will be cached)
86 REPLY QR RD RA SERVFAIL
99 ; Check that we get the cached SERVFAIL
103 REPLY QR RD RA SERVFAIL
108 ; Wait for the SERVFAIL to expire
109 STEP 31 TIME_PASSES ELAPSE 6
119 ; Check that we get the SERVFAIL (will be refreshed)
123 REPLY QR RD RA SERVFAIL
128 ; Query again, upstream has the real answer available
136 ; Check that we get the refreshed cached SERVFAIL
140 REPLY QR RD RA SERVFAIL