handler.starttls = function (now)
if not now then out_put("server.lua: we need to do tls, but delaying until later"); handler.need_tls = true; return; end
out_put( "server.lua: attempting to start tls on "..tostring(socket) )
+ local oldsocket = socket;
socket, err = ssl_wrap( socket, sslctx ) -- wrap socket
out_put("sslwrapped socket is "..tostring(socket));
if err then
out_put( "server.lua: ssl error: ", err )
return nil, nil, err -- fatal error
end
- socket:settimeout( 1 )
+ socket:settimeout(0);
+
+ -- Add the new socket to our system
+ socketlist[ socket ] = handler
+ readlen = readlen + 1
+ readlist[ readlen ] = socket
+
+ -- Remove traces of the old socket
+ readlen = removesocket( readlist, oldsocket, readlen )
+ socketlist [ oldsocket ] = nil;
+
send = socket.send
receive = socket.receive
close = socket.close
local eol, fatal_send_error
+ socket:settimeout(0);
+
local rstat, sstat = 0, 0
--// local import of socket methods //--
loop = function( ) -- this is the main loop of the program
--signal_set( "hub", "run" )
repeat
- --[[print(readlen, writelen)
- for _, s in ipairs(readlist) do print("R:", tostring(s)) end
- for _, s in ipairs(writelist) do print("W:", tostring(s)) end
- out_put("select()"..os.time())]]
local read, write, err = socket_select( readlist, writelist, 1 ) -- 1 sec timeout, nice for timers
for i, socket in ipairs( write ) do -- send data waiting in writequeues
local handler = socketlist[ socket ]
stats = stats,
closeall = closeall,
addtimer = addtimer,
+ wraptcpclient = wraptcpclient,
wraptlsclient = wraptlsclient,
}