12345678910111213141516171819202122232425262728293031323334353637 |
- #!/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
- assert(r:settimeout(2))
- ok, emsg = r:receive()
- if not ok or string.len(ok) ~= 0 then
- print("fail - receive of zero failed with:", ok, emsg)
- os.exit(1)
- end
- print"ok"
|