]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
IT's ALIVE - setting id's works and so does interfacing with dig
authorMiek Gieben <miekg@NLnetLabs.nl>
Tue, 23 Aug 2005 10:07:39 +0000 (10:07 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Tue, 23 Aug 2005 10:07:39 +0000 (10:07 +0000)
lua/lua-rns.c
lua/rns-lib.lua
lua/rns.lua
lua/test.lua

index 5ca167433999b0f855e7e15db8f2e6855dd9e4c4..b36b461c541ae7da84711618436dda955eef08b9 100644 (file)
@@ -334,7 +334,6 @@ l_read_wire_udp(lua_State *L)
        if (!pktbuf_raw) {
                return 0;
        }
-       printf("read bytes %d\n", from_size);
        ldns_buffer_new_frm_data(pktbuf, pktbuf_raw, size);
        
        /* push our buffer onto the stack */
@@ -386,6 +385,23 @@ l_pkt_set_qdcount(lua_State *L)
        return 0;
 }
 
+static int
+l_pkt_id(lua_State *L)
+{
+       ldns_pkt *p = (ldns_pkt*)lua_touserdata(L, 1);
+       lua_pushnumber(L, ldns_pkt_id(p));
+       return 1;
+}
+
+static int
+l_pkt_set_id(lua_State *L) 
+{
+       ldns_pkt *p = (ldns_pkt*)lua_touserdata(L, 1);
+       uint16_t id = lua_tonumber(L, 2);
+       ldns_pkt_set_id(p, id);
+       return 0;
+}
+
 /*
 ============
  CONVERSION
@@ -530,6 +546,15 @@ register_ldns_functions(void)
        lua_register(L, "l_pkt_ancount", l_pkt_ancount);
        lua_register(L, "l_pkt_nscount", l_pkt_nscount);
        lua_register(L, "l_pkt_nscount", l_pkt_nscount);
+       lua_register(L, "l_pkt_id", l_pkt_id);
+
+#if 0
+       lua_register(L, "l_pkt_set_qdcount", l_pkt_qdcount);
+       lua_register(L, "l_pkt_set_ancount", l_pkt_ancount);
+       lua_register(L, "l_pkt_set_nscount", l_pkt_nscount);
+       lua_register(L, "l_pkt_set_nscount", l_pkt_nscount);
+#endif
+       lua_register(L, "l_pkt_set_id", l_pkt_set_id);
        
        /* CONVERSIONs */
        lua_register(L, "l_pkt2string", l_pkt2string);
index d225208d9677c0314c83a3de14637cc2b2bf71a2..be3e024b09710722b744ee30ac0c6749b9893d5c 100644 (file)
@@ -36,8 +36,8 @@ LDNS_RDF_TYPE_NSA             = 25
 LDNS_RDF_TYPE_IPSECKEY         = 26
 
 
-function lua_debug(msg)
-       print("[lua]", msg)
+function lua_debug(...)
+       print("[lua]", unpack(arg))
 end
 
 -- transpose 2 rrs in a pkt --
index 92aca54203daf38111e14ce0c37192dfdad88de2..90cdebbaba0e6e7489ccf031543cbe1569a2c2b9 100644 (file)
@@ -14,16 +14,6 @@ pkt = l_pkt_push_rr(pkt, LDNS_SECTION_ANSWER, rr4)
 pkt = l_pkt_push_rr(pkt, LDNS_SECTION_AUTHORITY, rr2)
 pkt = l_pkt_push_rr(pkt, LDNS_SECTION_AUTHORITY, rr3)
 
-l_pkt_print(pkt)
-
-lua_reverse_pkt(pkt)
-
-l_pkt_print(pkt)
-
---lua_insert_end_rr(pkt, rr6)
-lua_insert_rr(pkt, rr5, 3)
-l_pkt_print(pkt)
-
 ---- Setup a server to listen to UDP
 -- make rdf with an ip
 rdf_ip = l_rdf_new_frm_str(LDNS_RDF_TYPE_A, "127.0.0.1")
@@ -34,24 +24,24 @@ socket = l_server_socket_udp(rdf_ip, 5353)
 -- in what order
 wirebuf, sockaddr_from, fromlen  = l_read_wire_udp(socket)
 
-print("From len", fromlen)
-print("From len", wirebuf)
-print("From len", sockaddr_from)
-
 if wirebuf == nil then
        lua_debug("nothing received")
 else
        -- somebody is listening
        wirepkt = l_buf2pkt(wirebuf)
        lua_debug("received from the interface")
+
+       id = l_pkt_id(wirepkt);
        l_pkt_print(wirepkt)
 
+       -- set the id on the outgoing packet
+       l_pkt_set_id(pkt, id)
        wirebuf2 = l_pkt2buf(pkt)
 
        rdf_listen, port_listen = l_sockaddr_storage2rdf(sockaddr_from)
 
        bytes = l_write_wire_udp(socket, wirebuf2, rdf_listen, port_listen);
-       print("wrote bytes", bytes)
+       lua_debug("wrote bytes", bytes)
        l_pkt_print(pkt)
        
 end
index 48f3a1e9a41e6df72225ea01008eddd863cede5e..f08fef2833fa84a709442ade41bbaeb35b337c82 100644 (file)
@@ -27,4 +27,6 @@ l_pkt_print(my_pkt)
 my_rr5 = l_pkt_set_rr(my_pkt, my_rr4, 1)
 l_rr_print(my_rr5)
 
+l_pkt_set_id(my_pkt, 1505)
+
 l_pkt_print(my_pkt)