local addtimer\r
local closeall\r
local addserver\r
+local getserver\r
local wrapserver\r
local getsettings\r
local closesocket\r
if not ( forced or fatalerror ) then\r
handler.sendbuffer( )\r
if bufferqueuelen ~= 0 then -- try again...\r
- handler.write = nil -- ... but no further writing allowed\r
+ if handler then\r
+ handler.write = nil -- ... but no further writing allowed\r
+ end\r
toclose = true\r
return false\r
end\r
socket:close( )\r
_sendlistlen = removesocket( _sendlist, socket, _sendlistlen )\r
_socketlist[ socket ] = nil\r
- _writetimes[ handler ] = nil\r
- _closelist[ handler ] = nil\r
- handler = nil\r
+ if handler then\r
+ _writetimes[ handler ] = nil\r
+ _closelist[ handler ] = nil\r
+ handler = nil\r
+ end\r
socket = nil\r
mem_free( )\r
if server then\r
sendtraffic = sendtraffic + count\r
_sendtraffic = _sendtraffic + count\r
_ = _cleanqueue and clean( bufferqueue )\r
- --out_put( "server.lua: sended '", buffer, "', bytes: ", succ, ", error: ", err, ", part: ", byte, ", to: ", ip, ":", clientport )\r
+ --out_put( "server.lua: sended '", buffer, "', bytes: ", tostring(succ), ", error: ", tostring(err), ", part: ", tostring(byte), ", to: ", tostring(ip), ":", tostring(clientport) )\r
if succ then -- sending succesful\r
bufferqueuelen = 0\r
bufferlen = 0\r
handler.sendbuffer = handshake\r
handshake( socket ) -- do handshake\r
else\r
+ -- We're not automatically doing SSL, so we're not secure (yet)\r
+ ssl = false\r
handler.starttls = function( now )\r
if not now then\r
--out_put "server.lua: we need to do tls, but delaying until later"\r
\r
handler.starttls = nil\r
needtls = nil\r
+ \r
+ -- Secure now\r
+ ssl = true\r
\r
handler.readbuffer = handshake\r
handler.sendbuffer = handshake\r
return handler\r
end\r
\r
+getserver = function ( port )\r
+ return _server[ port ];\r
+end\r
+\r
removeserver = function( port )\r
local handler = _server[ port ]\r
if not handler then\r
return _readtraffic, _sendtraffic, _readlistlen, _sendlistlen, _timerlistlen\r
end\r
\r
-local dontstop = true;\r
+local dontstop = true; -- thinking about tomorrow, ...\r
\r
setquitting = function (quit)\r
dontstop = not quit;\r
end\r
\r
local addclient = function( address, port, listeners, pattern, sslctx, startssl )\r
- local client, err = socket.tcp( )\r
+ local client, err = luasocket.tcp( )\r
if err then\r
return nil, err\r
end\r
if err then -- try again\r
local handler = wrapclient( client, address, port, listeners )\r
else\r
- wrapconnection( server, listeners, socket, address, port, "clientport", pattern, sslctx, startssl )\r
+ wrapconnection( nil, listeners, client, address, port, "clientport", pattern, sslctx, startssl )\r
end\r
end\r
\r
closeall = closeall,\r
addtimer = addtimer,\r
addserver = addserver,\r
+ getserver = getserver,\r
getsettings = getsettings,\r
setquitting = setquitting,\r
removeserver = removeserver,\r