Software /
code /
prosody
Comparison
net/server_select.lua @ 3398:abc4a52aef02
net.server_select: Remove 'now' parameter from starttls(), and base it on whether the sendbuffer is empty instead
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 22 Jul 2010 13:19:37 +0100 |
parent | 3382:fea0f8e19e4c |
child | 3458:9c3ae41e696c |
comparison
equal
deleted
inserted
replaced
3397:f376f0bd1d1f | 3398:abc4a52aef02 |
---|---|
481 _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) -- delete socket from writelist | 481 _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) -- delete socket from writelist |
482 _writetimes[ handler ] = nil | 482 _writetimes[ handler ] = nil |
483 if drain then | 483 if drain then |
484 drain(handler) | 484 drain(handler) |
485 end | 485 end |
486 _ = needtls and handler:starttls(nil, true) | 486 _ = needtls and handler:starttls(nil) |
487 _ = toclose and handler:close( ) | 487 _ = toclose and handler:close( ) |
488 return true | 488 return true |
489 elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write | 489 elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write |
490 buffer = string_sub( buffer, byte + 1, bufferlen ) -- new buffer | 490 buffer = string_sub( buffer, byte + 1, bufferlen ) -- new buffer |
491 bufferqueue[ 1 ] = buffer -- insert new buffer in queue | 491 bufferqueue[ 1 ] = buffer -- insert new buffer in queue |
562 if not socket then | 562 if not socket then |
563 return nil, nil, "ssl handshake failed"; | 563 return nil, nil, "ssl handshake failed"; |
564 end | 564 end |
565 else | 565 else |
566 local sslctx; | 566 local sslctx; |
567 handler.starttls = function( self, _sslctx, now ) | 567 handler.starttls = function( self, _sslctx) |
568 if _sslctx then | 568 if _sslctx then |
569 sslctx = _sslctx; | 569 sslctx = _sslctx; |
570 handler:set_sslctx(sslctx); | 570 handler:set_sslctx(sslctx); |
571 end | 571 end |
572 if not now then | 572 if bufferqueuelen > 0 then |
573 out_put "server.lua: we need to do tls, but delaying until later" | 573 out_put "server.lua: we need to do tls, but delaying until send buffer empty" |
574 needtls = true | 574 needtls = true |
575 return | 575 return |
576 end | 576 end |
577 out_put( "server.lua: attempting to start tls on " .. tostring( socket ) ) | 577 out_put( "server.lua: attempting to start tls on " .. tostring( socket ) ) |
578 local oldsocket, err = socket | 578 local oldsocket, err = socket |