Vladimir Dubrovin
95fd3be6fa
Reorganize service config parsing / main loop
2026-10-12 13:08:55 +03:00
Vladimir Dubrovin
98e8dfb004
Change waiting loops to semaphores for child counters
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ubuntu-latest (wolfSSL) (push) Waiting to run
2026-10-10 23:10:57 +03:00
Vladimir Dubrovin
f2ae920db2
Build the mail proxies and FTP only when they are asked for
...
pop3p, imapp and smtpp are built with MAILPROXY=true, and ftppr and the
ftp:// scheme of the HTTP proxy with FTP=true; with CMake the switches are
3PROXY_USE_MAILPROXY and 3PROXY_USE_FTP. Neither is in a default build, and
the standalone binaries follow what was built.
A configuration naming one of them is still read either way. The three mail
protocols amount to a STARTTLS negotiation now that mail is carried over
TLS, so without a proxy of their own those names are tlspr speaking the
protocol: the file holds a stand-in which sets the protocol for the
connection and returns tlspr for the caller to run, which serves the
service name and a parent chain alike and leaves conf.c and the redirect
table untouched. FTP has no such fallback, so the service is known, answers
nothing and logs the refusal.
The Linux workflow builds both, so all of it is still compiled and run.
2026-08-29 23:39:07 +03:00
Vladimir Dubrovin
88b3225bdf
Transparent moved to main code (TransparentPlugin removed), BSD pf support added
2026-08-26 14:34:44 +03:00
Vladimir Dubrovin
3526759e59
implement small http server for admin and testing
2026-08-25 17:21:33 +03:00
Vladimir Dubrovin
9ab2e820b5
Added imapp, starttls support for smtpp, pop3p, tlspr
2026-07-22 16:15:50 +03:00
Vladimir Dubrovin
8de071aa87
fix wolfSSL build
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
C/C++ CI cmake / ubuntu-latest (wolfSSL) (push) Has been cancelled
2026-07-13 20:50:27 +03:00
Vladimir Dubrovin
f173f8860d
wolfSSL support added
2026-07-13 20:24:51 +03:00
Vladimir Dubrovin
c893e866bd
Use Solar Designer's md4/md5 on non-Windows
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
2026-07-10 14:01:29 +03:00
Vladimir Dubrovin
fbc0953d5c
Use native Windows crypto for MD4/MD5
2026-07-10 13:04:43 +03:00
Vladimir Dubrovin
8c638fcaff
Revert usage of OpenSSL blake2 implementation
2026-05-08 16:45:44 +03:00
Vladimir Dubrovin
51a82613a6
Allow to set internal / external namespace on linux
2026-05-02 14:49:35 +03:00
Vladimir Dubrovin
8107f03062
Move PCRE/SSL to main code
2026-05-01 15:11:08 +03:00
Vladimir Dubrovin
ada24a98ec
Use semaphore/mutex insted of pipe for threads sync
2026-04-28 14:00:15 +03:00
Vladimir Dubrovin
05096c222a
Return standalone udppm; do not build standalone modules by default in cmake
...
Allow to set prefix in cmake, 3proxy_ by default
2026-04-28 12:21:11 +03:00
Vladimir Dubrovin
a7cdfa578d
split auth.c
2026-04-27 15:30:35 +03:00
Vladimir Dubrovin
d52701518d
udppm switched to hashtable and supports multiple connections; no standalone udppm
2026-04-27 15:12:39 +03:00
Vladimir Dubrovin
f1af44f3a9
Refactor hashtables to use indices instead of pointers, use blake2 as a hash, mycrypt renamed to 3proxy_crypt
2026-04-18 15:12:43 +03:00
Vladimir Dubrovin
a0d580b36d
move hashtable/resolve/sql functions to separate files
2026-04-17 19:29:50 +03:00
Vladimir Dubrovin
3c51af3737
Remove legacy NTLMv1 code
2026-04-08 19:21:25 +03:00
Vladimir Dubrovin
013d4bc333
tlspr (SNI proxy) implemented
...
Options -cN - level of TLS check
default - allow non-TLS traffic
1 - require TLS, only check client HELLO packet
2 - require TLS, check both client and server HELLO
3 - require TLS, check server send certificate (not compatible with TLS 1.3)
4 - require mutual TLS, check server send certificate request and client sends certificate (not compatible with TLS 1.3)
-P - default port
examples:
1.
tlspr -p1443 -P443 -c1
(port 1443 may be used to redirect traffic to destination port 143). SNI is used to find destination host
2.
allow * * * 80
parent 1000 http 0.0.0.0 0
allow * * * * CONNECT
parent 1000 tls 0.0.0.0 0
deny * * some.not.allowed.host
allow *
socks
attempts to take destination hostname from SNI in SOCKS
2024-05-20 13:01:38 +03:00
Vladimir Dubrovin
fb56b7d307
"auto" command added
2022-10-18 17:58:52 +03:00
z3APA3A
9c7fc9fddc
correct clean
2020-11-24 20:05:49 +03:00
z3APA3A
7aaa9c18dd
build rc file from res
2020-11-22 02:14:53 +03:00
z3APA3A
3dd1969657
Move logging to log.c
2020-10-07 19:03:59 +03:00
z3APA3A
8ad8a9ccd2
Remove unsupported "myalloc" code
2019-08-13 12:36:55 +03:00
z3APA3A
24127196ce
Remove ICQPR because OSCAR is outdated
2018-04-22 21:46:00 +03:00
z3APA3A
c1beee44ef
Add support for -os, -oc, -ol
...
-ocOPTIONS, -osOPTIONS, -olOPTIONS - options for client (oc), server
(os) or listening (ol) socket
e.g.
proxy -ocTCP_NODELAY,SO_KEEPALIVE,SO_DONTROUTE
2016-12-25 02:46:30 +03:00
z3APA3A
e7433d633c
'radius' and 'auth radius' support added (not tested yet)
...
Example:
radius secret 192.168.0.1 192.168.0.2
authcache ip,user
auth cache radius
2016-12-20 19:50:50 +03:00
z3APA3A
43da6cc32b
remove premake from makefile
2016-01-28 01:04:25 +03:00
z3APA3A
48361db51c
Add versioning information only to 3proxy.exe
2016-01-27 17:55:40 +03:00
z3APA3A
b2e415b8cb
Code restructure
...
! configuration moved to config.c
- msnpr.c removed
- countersutil.c removed
2015-12-03 02:17:15 +03:00
z3APA3A
e37a7f48d7
Older CVS comments removed
2014-12-13 23:20:00 +03:00
z3APA3A
c7310a2060
initial partial patches for IPv6 client support
2014-10-19 21:54:24 +04:00
Vladimir Dubrovin
5543b3052d
Moving icons compilation to Makefiles
2014-04-13 19:21:18 +04:00
z3APA3A
a060376f1e
initial import to git
2014-04-08 13:03:21 +04:00