3proxy/src
Vladimir Dubrovin 3e7f749eb6 Services: threadperclient, a thread for each client where one is needed
A flag of the service for what cannot share a thread between clients,
once clients can be served otherwise: what waits other than in
sockpoll(), or a thread which may be unable to serve another client.
It is set for a service
- with FilePlugin, whose _prepoll writes files and sends them;
- with a -ne network namespace: a thread which failed to come back from
  it to the main namespace is not to serve another client;
- writing to an ODBC log, should the log have no thread of its own to
  write it: struct logtype has blocks, for a log waiting other than in
  sockpoll().

Nothing serves clients otherwise yet: as before, each has a thread.

Incompatible for plugins, which have to be built again with the same
version of 3proxy: struct srvparam has threadperclient, struct logtype
has blocks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:54:03 +03:00
..
libs fix wolfSSL, switch minimal/busybox to musl+wolfssl 2026-07-31 11:27:10 +03:00
plugins Services: threadperclient, a thread for each client where one is needed 2026-10-24 19:54:03 +03:00
3proxy_crypt.c wolfSSL support added 2026-07-13 20:24:51 +03:00
3proxy.c Logs: a thread and a queue for each log; build-time defaults 2026-10-23 19:41:48 +03:00
3proxy.ico build rc file from res 2020-11-22 02:14:53 +03:00
3proxy.rc Copyright update 2021-07-02 11:50:33 +03:00
acl.c Make filtermaxsize, parentretries, delimchar and maxseg per service 2026-10-13 15:33:35 +03:00
auth.c Reload the configuration atomically 2026-10-14 20:15:14 +03:00
authradius.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
auto.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
base64.c Add outsize parameter to en64 2026-08-08 17:58:49 +03:00
common.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
conf.c Logs: a thread and a queue for each log; build-time defaults 2026-10-23 19:41:48 +03:00
confinit.h Logs: a thread and a queue for each log; build-time defaults 2026-10-23 19:41:48 +03:00
datatypes.c Logs: a logger for each log string, shared and closed once unused 2026-10-23 11:44:55 +03:00
dnspr.c UDP loop: deadlines in a heap, on a monotonic clock 2026-10-22 23:53:06 +03:00
ftp.c Authorize FTP commands and data connections by the rules in force 2026-10-15 00:49:53 +03:00
ftppr.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
hash.c Keep the clock, timetoexit and needreload out of conf 2026-10-13 16:05:33 +03:00
hashtables.c resolver: the system's name servers and hosts file by default 2026-10-20 18:49:21 +03:00
httpsrv.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
imapp.c per-service timeouts 2026-10-13 15:12:05 +03:00
limiter.c Re-authenticate clients of old services against the new configuration 2026-10-14 23:16:00 +03:00
log.c Logs: a thread and a queue for each log; build-time defaults 2026-10-23 19:41:48 +03:00
mainclient.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
mainconf.c Services: threadperclient, a thread for each client where one is needed 2026-10-24 19:54:03 +03:00
mainlisten.c Reattach: a new service's slot for its next client taken before it is found 2026-10-23 20:00:29 +03:00
maintcp.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
mainudp.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
Makefile initial import to git 2014-04-08 13:03:21 +04:00
Makefile.inc Split proxymain.c into its parts 2026-10-18 16:11:46 +03:00
mdhash.c fix wolfSSL build 2026-07-13 20:50:27 +03:00
mdhash.h wolfSSL support added 2026-07-13 20:24:51 +03:00
pcre.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
pcre.h Move PCRE/SSL to main code 2026-05-01 15:11:08 +03:00
plugins.c resolver: the system's name servers and hosts file by default 2026-10-20 18:49:21 +03:00
pop3p.c per-service timeouts 2026-10-13 15:12:05 +03:00
proxy.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
proxy.h Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
proxymain.c Reattach: a new service's slot for its next client taken before it is found 2026-10-23 20:00:29 +03:00
redirect.c resolver: per service, defaultresolve, fakeresolve or sysresolve 2026-10-21 18:45:48 +03:00
resolve.c resolver: per service, defaultresolve, fakeresolve or sysresolve 2026-10-21 18:45:48 +03:00
sem.c Change waiting loops to semaphores for child counters 2026-10-10 23:10:57 +03:00
smtpp.c per-service timeouts 2026-10-13 15:12:05 +03:00
sockgetchar.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
sockmap.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
socks.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
sql.c Services: threadperclient, a thread for each client where one is needed 2026-10-24 19:54:03 +03:00
ssl.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
ssl.h TLS: a part of a record read ahead is not pending data 2026-10-22 12:05:02 +03:00
ssllib.c MITM: a serial number of its own when wolfSSL cannot copy the source's 2026-10-23 13:56:38 +03:00
stringtable.c Name the HTTPSRV service in the string table 2026-10-15 15:36:13 +03:00
structures.h Services: threadperclient, a thread for each client where one is needed 2026-10-24 19:54:03 +03:00
tcppm.c per-service timeouts 2026-10-13 15:12:05 +03:00
tlspr.c per-service timeouts 2026-10-13 15:12:05 +03:00
transparent.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
udppm.c dnspr: name servers asked from the loop, nothing waits in it 2026-10-18 16:50:34 +03:00
udpsockmap.c Socket functions: _poll becomes _prepoll, which never waits 2026-10-24 19:54:03 +03:00
version.h Update version files for 1.1.0-pre1 2026-10-24 13:18:56 +00:00
webadmin.c Reload the configuration atomically 2026-10-14 20:15:14 +03:00