Merge 0.10->trunk
[prosody.git] / net / server_event.lua
index 9e1ef50dba810988395ec07dacc4948c220dd570..08524646c19e4ebf2aa63e89f1e4d6e92ae1a648 100644 (file)
@@ -518,8 +518,11 @@ local function handleclient( client, ip, port, server, pattern, listener, sslctx
                                elseif interface.startsslcallback then  -- start ssl connection if needed
                                        debug "starting ssl handshake after writing"
                                        interface.eventstarthandshake = addevent( base, nil, EV_TIMEOUT, interface.startsslcallback, 0 )
+                               elseif interface.writebufferlen ~= 0 then
+                                       -- data possibly written from ondrain
+                                       return EV_WRITE, cfg.WRITE_TIMEOUT
                                elseif interface.eventreadtimeout then
-                                       return EV_WRITE, EV_TIMEOUT
+                                       return EV_WRITE, cfg.WRITE_TIMEOUT
                                end
                                interface.eventwrite = nil
                                return -1
@@ -730,7 +733,6 @@ local function addclient( addr, serverport, listener, pattern, sslctx, typ )
        if res or ( err == "timeout" ) then
                local ip, port = client:getsockname( )
                local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx )
-               interface:_start_connection( sslctx )
                debug( "new connection id:", interface.id )
                return interface, err
        else