From: Remi Gacogne Date: Tue, 12 Dec 2023 13:54:07 +0000 (+0100) Subject: dnsdist: Clarify the Lua FFI DNS header set/get regression tests X-Git-Tag: dnsdist-1.9.0-alpha4~6^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F13593%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Clarify the Lua FFI DNS header set/get regression tests --- diff --git a/regression-tests.dnsdist/test_LuaFFI.py b/regression-tests.dnsdist/test_LuaFFI.py index 0b8c42a300..517db15c32 100644 --- a/regression-tests.dnsdist/test_LuaFFI.py +++ b/regression-tests.dnsdist/test_LuaFFI.py @@ -322,24 +322,33 @@ class TestLuaFFIHeader(DNSDistTest): local bit = require("bit") local ffi = require("ffi") - function setAAResponseAction(dr) + -- check that the AA bit is clear, set the rcode to REFUSED otherwise + function checkAAResponseAction(dr) local header_void = ffi.C.dnsdist_ffi_dnsquestion_get_header(dr) local header = ffi.cast("unsigned char *", header_void) -- get AA local aa = bit.band(header[2], bit.lshift(1, 2)) ~= 0 if aa then ffi.C.dnsdist_ffi_dnsquestion_set_rcode(dr, DNSRCode.REFUSED) + -- prevent subsequent rules from being applied return DNSResponseAction.HeaderModify end + return DNSResponseAction.None + end + + -- set the AA bit to 1 + function setAAResponseAction(dr) + local header_void = ffi.C.dnsdist_ffi_dnsquestion_get_header(dr) + local header = ffi.cast("unsigned char *", header_void) -- set AA=1 header[2] = bit.bor(header[2], bit.lshift(1, 2)) return DNSResponseAction.None end + addResponseAction(AllRule(), LuaFFIResponseAction(checkAAResponseAction)) addResponseAction(AllRule(), LuaFFIResponseAction(setAAResponseAction)) newServer{address="127.0.0.1:%d"} """ - _verboseMode = True def testLuaFFISetAAHeader(self): """ @@ -371,9 +380,9 @@ class TestLuaFFIHeader(DNSDistTest): self.assertEqual(query, receivedQuery) self.assertEqual(expectedResponse, receivedResponse) - def testLuaFFIgetAAHeader(self): + def testLuaFFIGetAAHeader(self): """ - Lua FFI: check AA=0 + Lua FFI: check AA=0, return REFUSED otherwise """ name = 'dnsheader-get-aa.luaffi.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN')