#!/usr/bin/env lua local socket = require"socket" port = 8765 function pcalltest(msg, o, opt) local a = { pcall(o.getoption, o, opt) } if a[1] then print(msg, opt, unpack(a)) else print(msg, opt, 'fail: ' .. a[2]) end end function options(o) print("options for", o) for _, opt in ipairs{ "keepalive", "reuseaddr", "tcp-nodelay", "tcp-keepidle", "tcp-keepcnt", "tcp-keepintvl"} do pcalltest("getoption", o, opt) end r = o:getoption'linger' if r then print("getoption", "linger", "on", r.on, "timeout", r.timeout) else print("getoption", "linger", "no result") end end local m = socket.tcp() options(m) assert(m:bind("*", port)) assert(m:listen()) options(m) m:close() local m = socket.bind("*", port) options(m) local c = socket.connect("localhost", port) options(c) local s = m:accept() options(s)