fix: populate ldns submodule and add autotools to LDNS build stage
- Re-cloned zonemaster-ldns with --recurse-submodules so the bundled ldns C library source (including Changelog and configure.ac) is present - Added autoconf, automake, libtool to Dockerfile.backend ldns-build stage so libtoolize + autoreconf can generate ldns/configure during make Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
63
zonemaster-ldns/ldns/lua/serv.lua
Normal file
63
zonemaster-ldns/ldns/lua/serv.lua
Normal file
@@ -0,0 +1,63 @@
|
||||
-- source the lib file with the function
|
||||
dofile("rns-lib.lua")
|
||||
|
||||
rr1 = record.new_frm_str("www.miek.nl IN A 192.168.1.2", 0, nil)
|
||||
rr2 = record.new_frm_str("miek.nl IN ns gaap", 0, nil)
|
||||
rr3 = record.new_frm_str("miek.nl IN ns gaap2", 0, nil)
|
||||
rr4 = record.new_frm_str("www.atoom.net. IN A 192.168.1.2", 0, nil)
|
||||
rr5 = record.new_frm_str("www.nlnetlabs.nl IN A 192.168.1.2", 0, nil)
|
||||
rr6 = record.new_frm_str("www.nlnet.nl IN A 192.168.1.2", 0, nil)
|
||||
|
||||
pkt = packet.new()
|
||||
pkt = packet.push_rr(pkt, LDNS_SECTION_ANSWER, rr1)
|
||||
pkt = packet.push_rr(pkt, LDNS_SECTION_ANSWER, rr4)
|
||||
pkt = packet.push_rr(pkt, LDNS_SECTION_AUTHORITY, rr2)
|
||||
pkt = packet.push_rr(pkt, LDNS_SECTION_AUTHORITY, rr3)
|
||||
|
||||
---- Setup a server to listen to UDP -- bit strange to first
|
||||
-- make a rdf out of it and then continue with the sockaddr struct
|
||||
rdf_ip = rdf.new_frm_str(LDNS_RDF_TYPE_A, "127.0.0.1")
|
||||
socket = udp.server_open(rdf_ip, 5353)
|
||||
if socket == nil then
|
||||
os.exit(EXIT_FAILURE)
|
||||
end
|
||||
|
||||
|
||||
while true do
|
||||
-- read from the socket, this blocks...
|
||||
wirebuf, sockaddr_from = udp.read(socket)
|
||||
|
||||
-- wrap this in new functions
|
||||
if wirebuf == nil then
|
||||
lua_debug("nothing received")
|
||||
else
|
||||
-- somebody is writing
|
||||
wirepkt = buffer.to_pkt(wirebuf)
|
||||
|
||||
lua_debug("received from the interface")
|
||||
|
||||
-- next we must send it to our recursive nameserver
|
||||
-- and pick up the result
|
||||
-- then we modify the result somewhat and sent it back
|
||||
-- to the client
|
||||
|
||||
id = packet.id(wirepkt);
|
||||
packet.print(wirepkt)
|
||||
|
||||
-- set the id on the outgoing packet
|
||||
packet.set_id(pkt, id)
|
||||
lua_packet_ancount_incr(pkt, 2)
|
||||
wirebuf2 = packet.to_buf(pkt)
|
||||
|
||||
-- write back to the client
|
||||
bytes = lua_udp_write(socket, wirebuf2, sockaddr_from)
|
||||
if bytes == -1 then
|
||||
lua_debug("write error")
|
||||
else
|
||||
lua_debug("wrote bytes", bytes)
|
||||
packet.print(pkt)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
udp.close(socket)
|
||||
Reference in New Issue
Block a user