From: Marek VavruĊĦa Date: Wed, 3 Jan 2018 20:00:49 +0000 (-0800) Subject: renamed pkt:clear() to pkt:recycle() and added tests X-Git-Tag: v2.0.0~46^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=154da4d02a263f43357f87727d5825c6bf181ca6;p=thirdparty%2Fknot-resolver.git renamed pkt:clear() to pkt:recycle() and added tests --- diff --git a/daemon/lua/kres.lua b/daemon/lua/kres.lua index 8578b057b..216911975 100644 --- a/daemon/lua/kres.lua +++ b/daemon/lua/kres.lua @@ -454,7 +454,12 @@ ffi.metatype( knot_pkt_t, { if ret ~= 0 then return nil, knot_strerror(ret) end return true end, - clear = function (pkt) return C.kr_pkt_recycle(pkt) end, + recycle = function (pkt) + assert(pkt ~= nil) + local ret = C.kr_pkt_recycle(pkt) + if ret ~= 0 then return nil, knot_strerror(ret) end + return true + end, question = function(pkt, qname, qclass, qtype) assert(pkt ~= nil) assert(qclass ~= nil, string.format('invalid class: %s', qclass)) diff --git a/lib/README.rst b/lib/README.rst index 0e844669a..267931bca 100644 --- a/lib/README.rst +++ b/lib/README.rst @@ -227,7 +227,7 @@ e.g. you can't write to ANSWER after writing AUTHORITY, it's like stages where y pkt:rcode(kres.rcode.NXDOMAIN) -- Clear answer and write QUESTION - pkt:clear() + pkt:recycle() pkt:question('\7blocked', kres.class.IN, kres.type.SOA) -- Start writing data pkt:begin(kres.section.ANSWER) diff --git a/modules/renumber/renumber.lua b/modules/renumber/renumber.lua index a44f10111..457e06f4b 100644 --- a/modules/renumber/renumber.lua +++ b/modules/renumber/renumber.lua @@ -88,7 +88,7 @@ local function rule() local qname = pkt:qname() local qclass = pkt:qclass() local qtype = pkt:qtype() - pkt:clear() + pkt:recycle() pkt:question(qname, qclass, qtype) for i = 1, ancount do local rr = records[i] diff --git a/tests/config/basic_test.lua b/tests/config/basic_test.lua index df4fff710..6dca8bcbb 100644 --- a/tests/config/basic_test.lua +++ b/tests/config/basic_test.lua @@ -87,6 +87,11 @@ local function test_packet_functions() same(parsed:id(), pkt:id(), 'parsed packet has same MSGID') same(parsed:ancount(), pkt:ancount(), 'parsed packet has same answer count') same(parsed:tostring(), pkt:tostring(), 'parsed packet is equal to source packet') + -- Test recycling of packets + ok(pkt:recycle(), 'recycle() works') + is(pkt:ancount(), 0, 'recycle() clears records') + is(pkt:qname(), nil, 'recycle() clears question') + is(#pkt:towire(), 12, 'recycle() clears the packet wireformat') end return {