From 603ac109beb32bace836167036d22e805da158b7 Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Thu, 6 Jan 2022 12:59:20 +0100 Subject: [PATCH] tests-extra: extend test for mod-cookies --- tests-extra/tests/modules/cookies/test.py | 24 +++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/tests-extra/tests/modules/cookies/test.py b/tests-extra/tests/modules/cookies/test.py index 3be0096879..73acd9d1d3 100644 --- a/tests-extra/tests/modules/cookies/test.py +++ b/tests-extra/tests/modules/cookies/test.py @@ -30,19 +30,12 @@ def reconfigure(server, zone, secret_lifetime, badcookie_slip): server.reload() server.zone_wait(zone) -def check_rcode(server, query, rcode, msg): +def check_rcode(server, query, rcode, msg, tcp=False): try: - response = dns.query.udp(query, server.addr, port=server.port, timeout=1) - except dns.exception.Timeout: - response = None - if response is None: - return None - compare(response.rcode(), rcode, msg) - return response - -def check_rcode_tcp(server, query, rcode, msg): - try: - response = dns.query.tcp(query, server.addr, port=server.port, timeout=1) + if tcp: + response = dns.query.tcp(query, server.addr, port=server.port, timeout=1) + else: + response = dns.query.udp(query, server.addr, port=server.port, timeout=1) except dns.exception.Timeout: response = None if response is None: @@ -74,7 +67,12 @@ check_rcode(knot, query, rcodeNoerror, "NO COOKIE OPT") # Try a query without a server cookie over TCP cookieOpt = dns.edns.option_from_wire(cookieOpcode, clientCookie, 0, clientCookieLen) query = dns.message.make_query("dns1.example.com", "A", use_edns=True, options=[cookieOpt]) -response = check_rcode_tcp(knot, query, rcodeNoerror, "ONLY CLIENT COOKIE [TCP]") +response = check_rcode(knot, query, rcodeNoerror, "ONLY CLIENT COOKIE [TCP]", tcp=True) + +# Try a query with the received cookie over TCP +cookieOpt = response.options[0] +query = dns.message.make_query("dns1.example.com", "A", use_edns=True, options=[cookieOpt]) +check_rcode(knot, query, rcodeNoerror, "CORRECT COOKIE", tcp=True) # Try a query without a server cookie cookieOpt = dns.edns.option_from_wire(cookieOpcode, clientCookie, 0, clientCookieLen) -- GitLab