Comparison

net/server_event.lua @ 13498:aefbc76ac8d2

Merge 0.12->trunk
author Kim Alvefur <zash@zash.se>
date Sun, 07 Jul 2024 18:40:25 +0200
parent 12974:ba409c67353b
parent 13497:da9be0ad4bbc
comparison
equal deleted inserted replaced
13496:3e6d5738ea09 13498:aefbc76ac8d2
733 if interface._connections >= cfg.MAX_CONNECTIONS then 733 if interface._connections >= cfg.MAX_CONNECTIONS then
734 client:close( ) -- refuse connection 734 client:close( ) -- refuse connection
735 debug( "maximal connections reached, refuse client connection; accept delay:", delay ) 735 debug( "maximal connections reached, refuse client connection; accept delay:", delay )
736 return EV_TIMEOUT, delay -- delay for next accept attempt 736 return EV_TIMEOUT, delay -- delay for next accept attempt
737 end 737 end
738 local client_ip, client_port = client:getpeername( ) 738 local client_ip, client_port = addr, port;
739 if client.getpeername then -- Only IP sockets have this method, UNIX sockets don't
740 client_ip, client_port = client:getpeername( )
741 end
739 interface._connections = interface._connections + 1 -- increase connection count 742 interface._connections = interface._connections + 1 -- increase connection count
740 local clientinterface = handleclient( client, client_ip, client_port, interface, pattern, listener, sslctx ) 743 local clientinterface = handleclient( client, client_ip, client_port, interface, pattern, listener, sslctx )
741 --vdebug( "client id:", clientinterface, "startssl:", startssl ) 744 --vdebug( "client id:", clientinterface, "startssl:", startssl )
742 if has_luasec and startssl then 745 if has_luasec and startssl then
743 clientinterface:starttls(sslctx, true) 746 clientinterface:starttls(sslctx, true)
753 756
754 server:settimeout( 0 ) 757 server:settimeout( 0 )
755 setmetatable(interface, interface_mt) 758 setmetatable(interface, interface_mt)
756 interfacelist[ interface ] = true 759 interfacelist[ interface ] = true
757 interface:_start_session() 760 interface:_start_session()
761 return interface
762 end
763
764 local function wrapserver(conn, addr, port, listeners, config)
765 config = config or {}
766 if config.sslctx and not has_luasec then
767 debug "fatal error: luasec not found"
768 return nil, "luasec not found"
769 end
770 local interface = handleserver( conn, addr, port, config.read_size, listeners, config.tls_ctx, config.tls_direct) -- new server handler
771 debug( "new server created with id:", tostring(interface))
758 return interface 772 return interface
759 end 773 end
760 774
761 local function listen(addr, port, listener, config) 775 local function listen(addr, port, listener, config)
762 config = config or {} 776 config = config or {}
945 addevent = newevent, 959 addevent = newevent,
946 addserver = addserver, 960 addserver = addserver,
947 listen = listen, 961 listen = listen,
948 addclient = addclient, 962 addclient = addclient,
949 wrapclient = wrapclient, 963 wrapclient = wrapclient,
964 wrapserver = wrapserver,
950 setquitting = setquitting, 965 setquitting = setquitting,
951 closeall = closeallservers, 966 closeall = closeallservers,
952 get_backend = get_backend, 967 get_backend = get_backend,
953 hook_signal = hook_signal, 968 hook_signal = hook_signal,
954 add_task = add_task, 969 add_task = add_task,