File: udp-zero-length-send

package info (click to toggle)
luasocket 3.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,264 kB
  • sloc: ansic: 4,845; makefile: 337; sh: 116
file content (25 lines) | stat: -rwxr-xr-x 654 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/env 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

]]

socket = require"socket"

s = assert(socket.udp())
r = assert(socket.udp())
assert(r:setsockname("*", 5432))
assert(s:setpeername("127.0.0.1", 5432))

ssz, emsg = s:send("")

print(ssz == 0 and "OK" or "FAIL",[[send:("")]], ssz, emsg)