Software /
code /
prosody
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, |