From d9173986d5e120c9285fcda58aaf0fa977279414 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Fri, 5 Dec 2008 19:55:46 +0000 Subject: Re-commit TLS fix --- net/server.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'net/server.lua') diff --git a/net/server.lua b/net/server.lua index e01ddfb7..55afcf3f 100644 --- a/net/server.lua +++ b/net/server.lua @@ -501,13 +501,24 @@ wraptlsclient = function( listener, socket, ip, serverport, clientport, mode, ss 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 -- cgit v1.2.3