Diff

net/server.lua @ 567:ae7f6167d780

Re-commit TLS fix
author Matthew Wild <mwild1@gmail.com>
date Fri, 05 Dec 2008 19:55:46 +0000
parent 566:c83166927835
child 581:23b9cd1206ba
line wrap: on
line diff
--- a/net/server.lua	Fri Dec 05 19:50:34 2008 +0000
+++ b/net/server.lua	Fri Dec 05 19:55:46 2008 +0000
@@ -501,13 +501,24 @@
 	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