1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/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"
|