From c37f71d062379ff4f48658cddd724b94df20fb66 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Mon, 8 Aug 2011 16:49:20 -0700 Subject: [PATCH] Test showing failure to receive a zero-length packet. --- test/udp-zero-length-send-recv | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 test/udp-zero-length-send-recv diff --git a/test/udp-zero-length-send-recv b/test/udp-zero-length-send-recv new file mode 100755 index 0000000..7d76c98 --- /dev/null +++ b/test/udp-zero-length-send-recv @@ -0,0 +1,35 @@ +#!/usr/bin/lua + +--[[ +Show that luasocket returns an error message on zero-length UDP sends, +even though the send is valid, and in fact the UDP packet is sent +to the peer: + +% sudo tcpdump -i lo -n +tcpdump: verbose output suppressed, use -v or -vv for full protocol decode +listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes +13:40:16.652808 IP 127.0.0.1.56573 > 127.0.0.1.5432: UDP, length 0 + +]] + +require"socket" + +s = assert(socket.udp()) +r = assert(socket.udp()) +assert(r:setsockname("*", 5432)) +assert(s:setpeername("127.0.0.1", 5432)) + +ok, emsg = s:send("") +if ok ~= 0 then + print("send of zero failed with:", ok, emsg) +end + +ok, emsg = r:receive() + +if not ok or string.len(ok) ~= 0 then + print("receive of zero failed with:", ok, emsg) +end + +print"ok" + +