From e563e751d0f7293ebd22cc9d8896c6cd041c1bf6 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Fri, 2 Jul 2010 17:24:40 +0100 Subject: net.server_select: Clean up buffer and fire drained callback on successful write before we try and start TLS negotiation (if negotiation fails instantly then we can be left without a handler to use for cleanup) (thanks dersd) --- net/server_select.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'net/server_select.lua') diff --git a/net/server_select.lua b/net/server_select.lua index 4eb82b97..298e560a 100644 --- a/net/server_select.lua +++ b/net/server_select.lua @@ -479,11 +479,11 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport bufferqueuelen = 0 bufferlen = 0 _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) -- delete socket from writelist - _ = needtls and handler:starttls(nil, true) _writetimes[ handler ] = nil if drain then drain(handler) end + _ = needtls and handler:starttls(nil, true) _ = toclose and handler:close( ) return true elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write -- cgit v1.2.3