Comparison

net/server.lua @ 1884:6eaa440bc9fc

net.server: Increase SSL handshake round-trip limit, and make it configurable
author Matthew Wild <mwild1@gmail.com>
date Sun, 04 Oct 2009 16:03:53 +0100
parent 1883:6866cf298701
child 1885:1fde15a415e6
comparison
equal deleted inserted replaced
1883:6866cf298701 1884:6eaa440bc9fc
155 155
156 _cleanqueue = false -- clean bufferqueue after using 156 _cleanqueue = false -- clean bufferqueue after using
157 157
158 _maxclientsperserver = 1000 158 _maxclientsperserver = 1000
159 159
160 _maxsslhandshake = 30 -- max handshake round-trips
160 ----------------------------------// PRIVATE //-- 161 ----------------------------------// PRIVATE //--
161 162
162 wrapserver = function( listeners, socket, ip, serverport, pattern, sslctx, maxconnections, startssl ) -- this function wraps a server 163 wrapserver = function( listeners, socket, ip, serverport, pattern, sslctx, maxconnections, startssl ) -- this function wraps a server
163 164
164 maxconnections = maxconnections or _maxclientsperserver 165 maxconnections = maxconnections or _maxclientsperserver
532 ssl = true 533 ssl = true
533 local wrote 534 local wrote
534 local read 535 local read
535 local handshake = coroutine_wrap( function( client ) -- create handshake coroutine 536 local handshake = coroutine_wrap( function( client ) -- create handshake coroutine
536 local err 537 local err
537 for i = 1, 10 do -- 10 handshake attemps 538 for i = 1, _maxsslhandshake do
538 _sendlistlen = ( wrote and removesocket( _sendlist, socket, _sendlistlen ) ) or _sendlistlen 539 _sendlistlen = ( wrote and removesocket( _sendlist, socket, _sendlistlen ) ) or _sendlistlen
539 _readlistlen = ( read and removesocket( _readlist, socket, _readlistlen ) ) or _readlistlen 540 _readlistlen = ( read and removesocket( _readlist, socket, _readlistlen ) ) or _readlistlen
540 read, wrote = nil, nil 541 read, wrote = nil, nil
541 _, err = client:dohandshake( ) 542 _, err = client:dohandshake( )
542 if not err then 543 if not err then
749 _socketlist = { } 750 _socketlist = { }
750 --mem_free( ) 751 --mem_free( )
751 end 752 end
752 753
753 getsettings = function( ) 754 getsettings = function( )
754 return _selecttimeout, _sleeptime, _maxsendlen, _maxreadlen, _checkinterval, _sendtimeout, _readtimeout, _cleanqueue, _maxclientsperserver 755 return _selecttimeout, _sleeptime, _maxsendlen, _maxreadlen, _checkinterval, _sendtimeout, _readtimeout, _cleanqueue, _maxclientsperserver, _maxsslhandshake
755 end 756 end
756 757
757 changesettings = function( new ) 758 changesettings = function( new )
758 if type( new ) ~= "table" then 759 if type( new ) ~= "table" then
759 return nil, "invalid settings table" 760 return nil, "invalid settings table"
765 _checkinterval = tonumber( new.checkinterval ) or _checkinterval 766 _checkinterval = tonumber( new.checkinterval ) or _checkinterval
766 _sendtimeout = tonumber( new.sendtimeout ) or _sendtimeout 767 _sendtimeout = tonumber( new.sendtimeout ) or _sendtimeout
767 _readtimeout = tonumber( new.readtimeout ) or _readtimeout 768 _readtimeout = tonumber( new.readtimeout ) or _readtimeout
768 _cleanqueue = new.cleanqueue 769 _cleanqueue = new.cleanqueue
769 _maxclientsperserver = new._maxclientsperserver or _maxclientsperserver 770 _maxclientsperserver = new._maxclientsperserver or _maxclientsperserver
771 _maxsslhandshake = new._maxsslhandshake or _maxsslhandshake
770 return true 772 return true
771 end 773 end
772 774
773 addtimer = function( listener ) 775 addtimer = function( listener )
774 if type( listener ) ~= "function" then 776 if type( listener ) ~= "function" then