Looking trough LuaSocket's dispatch.lua code, i see that
there's a check for a time without activity over a socket,
and then the socket is killed. In doing so, it emits
"timeout" error code (from function abort). On the other
hand, looking at the forward.lua code,there's this
fragment:
local data, error, partial = foo:receive(2048)
live = data or error == "timeout"
data = data or partial
local result, error = bar:send(data)
if not live or not result then
foo:close()
bar:close()
break
end
If i understand this right, this is tought as with plain
non blocking sockets, and won't do the right thing if the
dispatcher kills the socket for lack of activity. Looks
like there are two different "timeouts" mixed.