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 */
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
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);
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 --
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")
-- 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
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)