Mercurial > prosody-hg
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 |
| parents | ba409c67353b da9be0ad4bbc |
| children | dae094b392d1 |
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, |
