Software /
code /
prosody
Diff
net/server_select.lua @ 3311:88cfe1bba690
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)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 02 Jul 2010 17:24:40 +0100 |
parent | 3310:ddcab5be2a5e |
child | 3312:12fc7e005e8b |
line wrap: on
line diff
--- a/net/server_select.lua Fri Jul 02 17:23:17 2010 +0100 +++ b/net/server_select.lua Fri Jul 02 17:24:40 2010 +0100 @@ -479,11 +479,11 @@ 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