equal
deleted
inserted
replaced
99 local _sendtraffic |
99 local _sendtraffic |
100 local _readtraffic |
100 local _readtraffic |
101 |
101 |
102 local _selecttimeout |
102 local _selecttimeout |
103 local _sleeptime |
103 local _sleeptime |
|
104 local _tcpbacklog |
104 |
105 |
105 local _starttime |
106 local _starttime |
106 local _currenttime |
107 local _currenttime |
107 |
108 |
108 local _maxsendlen |
109 local _maxsendlen |
137 _sendtraffic = 0 -- some stats |
138 _sendtraffic = 0 -- some stats |
138 _readtraffic = 0 |
139 _readtraffic = 0 |
139 |
140 |
140 _selecttimeout = 1 -- timeout of socket.select |
141 _selecttimeout = 1 -- timeout of socket.select |
141 _sleeptime = 0 -- time to wait at the end of every loop |
142 _sleeptime = 0 -- time to wait at the end of every loop |
|
143 _tcpbacklog = 128 -- some kind of hint to the OS |
142 |
144 |
143 _maxsendlen = 51000 * 1024 -- max len of send buffer |
145 _maxsendlen = 51000 * 1024 -- max len of send buffer |
144 _maxreadlen = 25000 * 1024 -- max len of read buffer |
146 _maxreadlen = 25000 * 1024 -- max len of read buffer |
145 |
147 |
146 _checkinterval = 1200000 -- interval in secs to check idle clients |
148 _checkinterval = 1200000 -- interval in secs to check idle clients |
209 end |
211 end |
210 end |
212 end |
211 handler.resume = function( ) |
213 handler.resume = function( ) |
212 if handler.paused then |
214 if handler.paused then |
213 if not socket then |
215 if not socket then |
214 socket = socket_bind( ip, serverport ); |
216 socket = socket_bind( ip, serverport, _tcpbacklog ); |
215 socket:settimeout( 0 ) |
217 socket:settimeout( 0 ) |
216 end |
218 end |
217 _readlistlen = addsocket(_readlist, socket, _readlistlen) |
219 _readlistlen = addsocket(_readlist, socket, _readlistlen) |
218 _socketlist[ socket ] = handler |
220 _socketlist[ socket ] = handler |
219 handler.paused = false; |
221 handler.paused = false; |
718 if err then |
720 if err then |
719 out_error( "server.lua, [", addr, "]:", port, ": ", err ) |
721 out_error( "server.lua, [", addr, "]:", port, ": ", err ) |
720 return nil, err |
722 return nil, err |
721 end |
723 end |
722 addr = addr or "*" |
724 addr = addr or "*" |
723 local server, err = socket_bind( addr, port ) |
725 local server, err = socket_bind( addr, port, _tcpbacklog ) |
724 if err then |
726 if err then |
725 out_error( "server.lua, [", addr, "]:", port, ": ", err ) |
727 out_error( "server.lua, [", addr, "]:", port, ": ", err ) |
726 return nil, err |
728 return nil, err |
727 end |
729 end |
728 local handler, err = wrapserver( listeners, server, addr, port, pattern, sslctx ) -- wrap new server socket |
730 local handler, err = wrapserver( listeners, server, addr, port, pattern, sslctx ) -- wrap new server socket |
770 |
772 |
771 getsettings = function( ) |
773 getsettings = function( ) |
772 return { |
774 return { |
773 select_timeout = _selecttimeout; |
775 select_timeout = _selecttimeout; |
774 select_sleep_time = _sleeptime; |
776 select_sleep_time = _sleeptime; |
|
777 tcp_backlog = _tcpbacklog; |
775 max_send_buffer_size = _maxsendlen; |
778 max_send_buffer_size = _maxsendlen; |
776 max_receive_buffer_size = _maxreadlen; |
779 max_receive_buffer_size = _maxreadlen; |
777 select_idle_check_interval = _checkinterval; |
780 select_idle_check_interval = _checkinterval; |
778 send_timeout = _sendtimeout; |
781 send_timeout = _sendtimeout; |
779 read_timeout = _readtimeout; |
782 read_timeout = _readtimeout; |
790 _selecttimeout = tonumber( new.select_timeout ) or _selecttimeout |
793 _selecttimeout = tonumber( new.select_timeout ) or _selecttimeout |
791 _sleeptime = tonumber( new.select_sleep_time ) or _sleeptime |
794 _sleeptime = tonumber( new.select_sleep_time ) or _sleeptime |
792 _maxsendlen = tonumber( new.max_send_buffer_size ) or _maxsendlen |
795 _maxsendlen = tonumber( new.max_send_buffer_size ) or _maxsendlen |
793 _maxreadlen = tonumber( new.max_receive_buffer_size ) or _maxreadlen |
796 _maxreadlen = tonumber( new.max_receive_buffer_size ) or _maxreadlen |
794 _checkinterval = tonumber( new.select_idle_check_interval ) or _checkinterval |
797 _checkinterval = tonumber( new.select_idle_check_interval ) or _checkinterval |
|
798 _tcpbacklog = tonumber( new.tcp_backlog ) or _tcpbacklog |
795 _sendtimeout = tonumber( new.send_timeout ) or _sendtimeout |
799 _sendtimeout = tonumber( new.send_timeout ) or _sendtimeout |
796 _readtimeout = tonumber( new.read_timeout ) or _readtimeout |
800 _readtimeout = tonumber( new.read_timeout ) or _readtimeout |
797 _maxselectlen = new.max_connections or _maxselectlen |
801 _maxselectlen = new.max_connections or _maxselectlen |
798 _maxsslhandshake = new.max_ssl_handshake_roundtrips or _maxsslhandshake |
802 _maxsslhandshake = new.max_ssl_handshake_roundtrips or _maxsslhandshake |
799 _maxfd = new.highest_allowed_fd or _maxfd |
803 _maxfd = new.highest_allowed_fd or _maxfd |