]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
some addition. I believe the buffer bug is not there anymore. Or isn't a bug in the...
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 25 Aug 2005 12:59:06 +0000 (12:59 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 25 Aug 2005 12:59:06 +0000 (12:59 +0000)
buffer.c
lua/echo.lua
lua/lua-rns.c
lua/test.lua
lua/test2.lua

index ca97f2d371bcd4f1a6eef0016c5533430b7b8bd1..d9f4c250e8612bfa90ccef2cf91e15e07f4bdea2 100644 (file)
--- a/buffer.c
+++ b/buffer.c
@@ -43,7 +43,7 @@ ldns_buffer_new_frm_data(ldns_buffer *buffer, void *data, size_t size)
 {
        assert(data != NULL);
 
-       buffer->_position = 0;
+       buffer->_position = 0; 
        buffer->_limit = buffer->_capacity = size;
        buffer->_data = LDNS_XMALLOC(uint8_t, size);
        memcpy(buffer->_data, data, size);
index 62a414d9428f3e30f02997d0252045cca55ca0f6..31da7f11f37afb45196538b28320113ebe6d6f7c 100644 (file)
@@ -36,6 +36,8 @@ while true do
                nameserver_bytes = udp.write(socket_nameserver, wirebuf2, rdf_ip_nameserver, 53)
                if nameserver_bytes == nil then
                        lua_debug("ns write error")
+               else 
+                       lua_debug("wrote %d bytes", nameserver_bytes)
                end
 
                nameserver_buf, sockaddr_from_nameserver  = udp.read(socket_nameserver)
@@ -44,26 +46,28 @@ while true do
                nameserver_pkt = buffer.to_pkt(nameserver_buf)
                lua_debug("received from the nameserver")
                packet.print(nameserver_pkt)
-if true then
 
-               -- 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
-               
                -- write back to the client
-               -- This is fishy
+               -- This is fishy, why the new buf??
                nsbuf2 = packet.to_buf(nameserver_pkt)
-               bytes = lua_udp_write(socket, nsbuf2, sockaddr_from)
-else
-               bytes = lua_udp_write(socket, wirebuf2, sockaddr_from)
-end
+
+               print("nsbuf2")
+               buffer.info(nsbuf2)
+               print("nameserver_buf")
+               buffer.info(nameserver_buf)
+
+               bytes = lua_udp_write(socket, nsbuf2, sockaddr_from) --this works
+               --bytes = lua_udp_write(socket, nameserver_buf, sockaddr_from) ----this not
+               --but is the above legal?? --
+
                if bytes == nil  then
                        lua_debug("write error")
-               else 
-                       lua_debug("wrote bytes", bytes)
-                       packet.print(pkt)
                end
+
+               buffer.free(nsbuf2)
+               buffer.free(nameserver_buf)
+               buffer.free(wirebuf2)
+               buffer.free(wirebuf)
                
        end
 end
index 23c9b308a9ded642155a4237b005501273ca8829..5af6a25d6f5407327fb994b31a2ee7d747dd17a1 100644 (file)
@@ -431,7 +431,6 @@ l_read_wire_udp(lua_State *L)
        /* stack func lua cal in same order buf, from */
        lua_pushlightuserdata(L, pktbuf);
        lua_pushlightuserdata(L, from);
-       /* lua_pushnumber(L, (lua_Number)from_size); */
        return 2;
 }
 
@@ -517,6 +516,32 @@ l_pkt_set_id(lua_State *L)
        return 0;
 }
 
+/* BUFFERs */
+static int
+l_buf_free(lua_State *L)
+{
+       ldns_buffer *b = (ldns_buffer *)lua_touserdata(L, 1);
+       if (!b) {
+               return 0;
+       }
+       ldns_buffer_free(b);
+       return 0;
+}
+
+static int
+l_buf_info(lua_State *L)
+{
+       ldns_buffer *b = (ldns_buffer *)lua_touserdata(L, 1);
+       if (!b) {
+               return 0;
+       }
+       printf("capacity %d; position %d; limit %d\n",
+                       ldns_buffer_capacity(b),
+                       ldns_buffer_position(b),
+                       ldns_buffer_limit(b));
+       return 0;
+}
+
 /*
 ============
  CONVERSION
@@ -550,7 +575,6 @@ l_pkt2buf(lua_State *L)
                return 0;
        }
 
-       /* resize! XXX */
        b = ldns_buffer_new(LDNS_MIN_BUFLEN);
 
        if (ldns_pkt2buffer_wire(b, p) != LDNS_STATUS_OK) {
@@ -696,6 +720,8 @@ register_ldns_functions(void)
        /* BUFFERs */
        static const struct luaL_reg l_buf_lib [] = {
                 {"to_pkt",              l_buf2pkt},
+               {"free",                l_buf_free},
+               {"info",                l_buf_info},
                 {NULL,                  NULL}
         };
        luaL_openlib(L, "buffer", l_buf_lib, 0);
index f2bc9bc8c4e9ebd50b3168bc5825bd5f59a565d6..7b2f49258af864aed9e418b3639c7f3ac5244a4c 100644 (file)
@@ -9,6 +9,7 @@ my_rr4 = record.new_frm_str("www.atoom.net. IN A 192.168.1.2")
 record.print(my_rr)
 record.print(my_rr2)
 record.print(my_rr4)
+print("nothing?")
 
 my_pkt = packet.new();
 
index fc80495638c012c5ee2abdea53915e8e758786c5..2f3f987f58156ef5cbba650daa1e0881146af88e 100644 (file)
@@ -1,4 +1,5 @@
 -- source the lib file with the function
 dofile("rns-lib.lua")
 
-my_pkt = packet.new();
+my_pkt = packet.new()
+packet.print(my_pkt)