From: Miek Gieben Date: Thu, 11 Aug 2005 17:11:12 +0000 (+0000) Subject: reading pkts goes ok. Writing pkt does not seem to reach drill/dig X-Git-Tag: release-1.0.0~292 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da2a506f79b58f9218139ec1632db8f071020eeb;p=thirdparty%2Fldns.git reading pkts goes ok. Writing pkt does not seem to reach drill/dig --- diff --git a/lua/lua-rns.c b/lua/lua-rns.c index ab6540f6..050b47d5 100644 --- a/lua/lua-rns.c +++ b/lua/lua-rns.c @@ -322,7 +322,6 @@ l_read_wire_udp(lua_State *L) pktbuf_raw = ldns_udp_read_wire(sockfd, &size); if (!pktbuf_raw) { - printf("[debug] nothing allright\n"); return 0; } ldns_buffer_new_frm_data(pktbuf, pktbuf_raw, size); @@ -408,11 +407,11 @@ l_pkt2buf(lua_State *L) /* resize! XXX */ b = ldns_buffer_new(LDNS_MAX_PACKETLEN); + if (ldns_pkt2buffer_wire(b, p) != LDNS_STATUS_OK) { return 0; } /* resize to current usage */ - printf("[debug] usage buffer %d\n", ldns_buffer_position(b)); ldns_buffer_reserve(b, (size_t) ldns_buffer_position(b)); lua_pushlightuserdata(L, b); diff --git a/lua/rns.lua b/lua/rns.lua index 3138c419..a5583e17 100644 --- a/lua/rns.lua +++ b/lua/rns.lua @@ -24,37 +24,27 @@ l_pkt_print(pkt) lua_insert_rr(pkt, rr5, 3) l_pkt_print(pkt) --- l_pkt_print(pkt) - --- now do it at random --- lua_transpose_rr_random(pkt) - --- print again --- l_pkt_print(pkt) - --- spkt = l_pkt2string(pkt) - --- len = string.len(spkt) - --- print(len) - --- print(spkt) --- print (string.byte(spkt,160)) - +---- 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") -- connect and bind to a server udp socket socket = l_server_socket_udp(rdf_ip, 5353) --- --- read from the socket + +-- read from the socket, this blocks... wirebuf = l_read_wire_udp(socket) ---lua_debug("what I read") + +if wirebuf == nil then + lua_debug("nothing received") +else + -- somebody is listening + wirepkt = l_buf2pkt(wirebuf) + lua_debug("receveid from the interface") + l_pkt_print(wirepkt) + + wirebuf2 = l_pkt2buf(pkt) + l_write_wire_udp(socket, wirebuf2, rdf_ip, 5353); + +end + -- close the socket l_server_socket_close_udp(socket) --- convert the packet - --- lua_debug("I shouldn't be here") -wirepkt = l_buf2pkt(wirebuf) --- -- print the packet -l_pkt_print(wirepkt) ---lua_debug("The end")