[DNS Server] #GT1 - Previous stage tries to forward?

It looks like Stage #YC9 is trying to forward responses. My server passes YC9 if I ignore the forwarding flags, and passes GT1, but YC9 is forwarding to a server that can’t pass YC9

[tester::#YC9] Running tests for Stage #YC9 (Parse compressed packet)
[tester::#YC9] Starting DNS server on 127.0.0.1:2053
[tester::#YC9] Running program
[tester::#YC9] DNS resolver listening on 127.0.0.1:5354
[tester::#YC9] Connecting to 127.0.0.1:2053 using UDP
[your_program] Logs from your program will appear here!
[your_program] Invoked with: /app/zig-out/bin/main --resolver 127.0.0.1:5354
[your_program] Listening on port 2053

remote: [tester::#YC9] Running tests for Stage #YC9 (Parse compressed packet)
remote: [tester::#YC9] Starting DNS server on 127.0.0.1:2053
remote: [tester::#YC9] Running program
remote: [tester::#YC9] DNS resolver listening on 127.0.0.1:5354
remote: [tester::#YC9] Connecting to 127.0.0.1:2053 using UDP
remote: [your_program] Logs from your program will appear here!
remote: [your_program] Invoked with: /app/zig-out/bin/main --resolver 127.0.0.1:5354
remote: [your_program] Listening on port 2053, forwarding to 127.0.0.1:5354
remote: [your_program] Received query 41991, forwarding to 127.0.0.1
remote: [tester::#YC9] Querying the following in the same request (Messages with >> prefix are part of this log)
remote: [tester::#YC9] >> ;abc.longassdomainname.com. IN A
remote: [tester::#YC9] >> ;def.longassdomainname.com. IN A
remote: [tester::#YC9] Sending Request: (Messages with >>> prefix are part of this log)
remote: [tester::#YC9] >>> ;; opcode: QUERY, status: NOERROR, id: 43730
remote: [tester::#YC9] >>> ;; flags: rd; QUERY: 2, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
remote: [tester::#YC9] >>>
remote: [tester::#YC9] >>> ;; QUESTION SECTION:
remote: [tester::#YC9] >>> ;abc.longassdomainname.com. IN A
remote: [tester::#YC9] >>> ;def.longassdomainname.com. IN A
remote: [tester::#YC9] >>>
remote: [your_program] Listening on port 2053, forwarding to 127.0.0.1:5354
remote: [your_program] Received query response for 41991
remote: [your_program] Forwarding query response for 41991
remote: [your_program] Listening on port 2053, forwarding to 127.0.0.1:5354
remote: [your_program] Received query 53930, forwarding to 127.0.0.1
remote: [your_program] Listening on port 2053, forwarding to 127.0.0.1:5354
remote: [tester::#YC9] Received Response: (Messages with >>> prefix are part of this log)
remote: [tester::#YC9] >>> ;; opcode: QUERY, status: FORMERR, id: 43730
remote: [tester::#YC9] >>> ;; flags: qr rd; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
remote: [tester::#YC9] >>>
remote: [tester::#YC9] Expected answer section to have 2 entries got 0
remote: [tester::#YC9] Test failed

Hey @Suibeom, could you confirm if your code handles this case?

Ahah. It does not handle that properly. Thanks. I got confused by the header for that test (“Running tests for Stage #YC9 (Parse compressed packet)”) into thinking it was failing an earlier stage… Thank you!

1 Like

Ah, yes, this is from an earlier stage. The tests for all stages are run with the resolver flag, but the flag for earlier stages didn’t take effect until you finish the last stage.

1 Like

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.