Commit Graph

134 Commits

Author SHA1 Message Date
z3APA3A
c1c5875356 better memory allocation errors handling, countall/nocountall corrected 2020-11-03 02:05:18 +03:00
z3APA3A
624c3e6ae1 correct IPv6 parsing where hostname is expected 2020-10-16 22:51:02 +03:00
z3APA3A
eb829b062b Major code refactoring
- sockmapping rewritten from stratch to minimilse polling. poll() is now
only called if blocking is actually expected, splice pipes are now
polled if splice fails, buffers flushing is much more accurate.
- logging code moved to separate files
- signal masks added to client threads to prevent unneeded interruptions
- bandwidth limitation will not delay the thread after client or server
shutdown
2020-10-09 15:42:34 +03:00
z3APA3A
3dd1969657 Move logging to log.c 2020-10-07 19:03:59 +03:00
z3APA3A
1fd759d327 Correct typo (name resolution could fail on some platforms) 2020-08-07 12:14:03 +03:00
z3APA3A
8c511a19e9 Do not resolve hostname to IP on ACL destination 2020-08-06 17:56:28 +03:00
z3APA3A
859713d10f Fail if can not bind to device 2020-06-17 16:05:23 +03:00
z3APA3A
930d9823ea Use futex instead of pthread_mutex on Linux 2018-12-28 18:49:45 +03:00
z3APA3A
eb09ae7c58 Support socket options for connback sockets and connection timeouts 2018-05-05 17:16:51 +03:00
z3APA3A
a42bb38d76 Use WSAPoll on Windows (except lite version) 2018-04-21 23:57:42 +03:00
z3APA3A
83441eebc7 Move log buffer to stack
Move log bufer to stack and remove mutex
2018-04-21 01:37:31 +03:00
z3APA3A
e469e9e369 Increase default stacksize 2018-04-21 01:29:15 +03:00
z3APA3A
d1b527b523 Minor logging changes 2018-04-21 01:24:18 +03:00
z3APA3A
50277692f4 Replace fclose+fopen with freopen where possible 2018-04-21 00:30:02 +03:00
z3APA3A
ff91a6fe72 connlim / noconnlim commands added to support connection / connectio rate limits 2018-01-12 19:09:42 +03:00
z3APA3A
105522b24e Fix: recursion detection was not working 2017-10-17 15:19:47 +03:00
z3APA3A
8e2a87421c Fix: %n terminated log string on IPv6 address 2017-10-10 18:21:34 +03:00
z3APA3A
b17b36cbce Add support to bind to interface (-Di / -Do) via SO_BINDTODEVICE 2017-08-14 18:22:15 +03:00
z3APA3A
b4043e944c Unify RADIUS code for logging 2017-06-25 18:40:26 +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
e2884b182a Add timeout for connect in all modules 2016-12-23 00:56:16 +03:00
z3apa3a
42ca640769 Corrected connect() timeout on *nix 2016-12-22 17:31:17 +03:00
z3APA3A
d1d86ed9b3 implement timeout on connect()
STRING_S timeout is used (15 sec by default)
2016-12-22 17:11:44 +03:00
z3APA3A
f709255d62 Copyrights cleaned, authradius.c added 2016-12-20 15:47:02 +03:00
z3apa3a
1ab549036c Changed -a / -s options handling for 'anonymous' after last commit 2016-12-19 03:19:17 +03:00
z3APA3A
e2b406f27b Addition al fix for Linux (glibc?) specific daemon problem 2016-08-23 18:36:18 +03:00
z3APA3A
b242d6df8c Fix daemonize in *nix 2016-08-23 14:19:27 +03:00
z3APA3A
6426ed0c1a fix %i logging 2016-06-07 15:39:14 +03:00
z3APA3A
84664a203b support %i in loformat 2016-06-06 17:54:23 +03:00
z3APA3A
f347b37770 support port number in 'nserver' / 'authnserver' 2016-05-18 00:05:23 +03:00
z3APA3A
8cdf341d0e workaround for broken getsockname() in FTP proxy 2016-05-14 00:09:51 +03:00
Vladimir Dubrovin
9bfae5faaa force / no force commands added 2016-04-02 11:43:25 +03:00
z3APA3A
6cac541e33 fix broken extip functionality 2016-03-30 19:16:12 +03:00
z3APA3A
eeb2d78fb1 re-authenticate user on 2016-03-28 17:49:27 +03:00
z3APA3A
5d0504cd33 Always reset bind sa on connect 2016-03-04 13:44:53 +03:00
z3APA3A
cf3bae0f6b Revert "additional memset for hint on retry"
This reverts commit bb206869de.
2016-02-22 00:14:54 +03:00
z3APA3A
bb206869de additional memset for hint on retry 2016-02-20 15:45:44 +03:00
z3APA3A
5c5f4e258f Increase default stack size for *nix 2016-02-20 09:11:03 +03:00
z3APA3A
ad9b0046d9 Fix thread init bug introduced 2016-02-19 20:21:16 +03:00
z3APA3A
b40e8fae4c increase stack size for FreeBSD 2016-02-19 19:44:38 +03:00
Vladimir Dubrovin
9ddc1fb874 fix *nix warnings 2016-02-18 17:01:18 +03:00
z3APA3A
43a36ec813 Warnings cleanup 2016-02-18 16:43:37 +03:00
z3APA3A
3b8e7741b3 Compilation warnings cleanup 2016-02-16 15:29:51 +03:00
z3APA3A
5fc1d81e5c add stack size configuration
'stacksize' command and -S configuration option added
2016-02-11 16:16:44 +03:00
z3APA3A
6713530fda log_mutex init moved to proxymain 2016-02-05 19:04:16 +03:00
z3APA3A
13a7d6be11 Replace memcpy with assignment where appropriate 2016-02-05 18:31:17 +03:00
z3APA3A
3cc9796583 Support for 'extip' and 'smtp' parent types added 2016-02-05 01:52:45 +03:00
z3APA3A
fec0da52af fixed: use SASIZE() instead of sizeof() in connect() for FreeBSD compatibility 2016-01-25 14:49:17 +03:00
z3APA3A
375a2c9f6e Do not use SO_REUSEADDR by default
to avoid misbehavior in some glibc versions
2016-01-23 18:43:30 +03:00
z3APA3A
4af5f2fde7 Use SASIZE() instead of sizeof() in bind() for FreeBSD compatibility 2016-01-22 15:59:40 +03:00
z3APA3A
75c63d2de6 add support for -u2 in socks 2016-01-15 15:29:57 +03:00
z3APA3A
bef5b6f473 minor logging correction 2016-01-06 22:06:33 +03:00
z3APA3A
889c5caa1f typo in logsyslog() 2016-01-03 19:57:51 +03:00
z3APA3A
b56702e670 Increase static bufer 2015-12-27 19:44:21 +03:00
z3APA3A
7df2461a26 Unify logging (make it always blocking in exchange for memory) 2015-12-27 19:27:17 +03:00
z3APA3A
fa2679555e print IPv6 address in [] 2015-12-21 13:40:30 +03:00
z3APA3A
40f9430623 Force use of IPv6 translated address instead of IPv4 with -6 2015-12-07 22:58:31 +03:00
z3APA3A
bd37ffa2f7 Race conditions fixed on config reload
Race conditions on logging and name resolution
2015-12-04 00:59:52 +03:00
z3APA3A
74772de341 Fixed handling of [] IPv6 addresses in hostnames 2015-11-29 12:38:16 +03:00
z3APA3A
54bcff710c Fix for external connections
linger was used without init, set bind port to zero
2015-11-28 22:57:52 +03:00
z3APA3A
a2b5af6dab Connect back proxy functionality added
-r and -R options added to support connect back functionality between
two instances of proxy
2015-09-20 21:01:50 +03:00
z3APA3A
5844e165b5 nscache6 command support + nsrecord with IPv6
nscache6 - new command for IPv6 addresses cache
nsrecord supports IPv6 addresses
dnsauth should work with IPv6 servers and clients
+ caching is now more accurate
2014-12-14 05:33:08 +03:00
z3APA3A
e37a7f48d7 Older CVS comments removed 2014-12-13 23:20:00 +03:00
z3APA3A
8a6632f0d1 Support IPv6 for parent proxy
Parent proxy can be on IPv6 network (except SOCKS4).
2014-12-13 22:38:03 +03:00
z3APA3A
e39f4638cf Corrected ACLs handling + network ranges in ACLS
ACL handling corrected (affected all ACL-based operations like
allow/deny/banlimin/etc).
Network ranges like
10.0.0.0-10.0.0.1.64
are winally supported in ACLS.
2014-12-13 19:48:41 +03:00
z3APA3A
042fc2afde nserver address may be given as IPv6 2014-12-13 03:56:01 +03:00
z3APA3A
15f9f24f04 Name resolution via TCP support
Supports _real_ name resolution via parent proxy over TCP in nserver /
dnspr.
Can be used to create UDP->TCP name proxy, e.g.

nserver 127.0.0.1/tcp
nscache 65535
auth none
dnspr
auth iponly
tcppm 53 77.88.8.8 53

now, all names are resolved via TCP connection to 77.88.8.8
(dns.yandex.ru).
2014-12-11 03:06:34 +03:00
z3APA3A
e3645ee971 ftppr and -h option handling fixed 2014-12-10 19:00:35 +03:00
z3APA3A
f82d1e296b Redirection fixes 2014-11-26 01:50:14 +03:00
z3APA3A
b5bcb44e27 Fixes for NOIPV6
Fixes to compile without IPv6 support
2014-11-09 21:59:58 +03:00
z3APA3A
278955deef getip46 corrected 2014-11-09 20:56:26 +03:00
z3APA3A
7acf3cc4ed name resolution bugfixes 2014-11-03 22:17:22 +03:00
z3APA3A
f70e4adf47 IPv6 bugfixes 2014-11-03 21:25:06 +03:00
z3APA3A
db5c4b1255 more changes for IPv6 client support 2014-10-21 06:00:56 +04:00
z3APA3A
c7310a2060 initial partial patches for IPv6 client support 2014-10-19 21:54:24 +04:00
z3APA3A
f1e017394d Added IPv6 support for 'external' command and -e
Now, 2 external addresses can be specified: one for IPv4 and one for
IPv6
2014-10-19 04:32:18 +04:00
Vladimir Dubrovin
a30d5d51a5 IPv6 server side code
+ IPv6 server side support
!!! Auth need to be fixed
2014-05-12 01:10:58 +04:00
Vladimir Dubrovin
ccf606fd9e ntoa changed to ntop 2014-05-12 01:10:53 +04:00
Vladimir Dubrovin
7897b009a1 intport removed, SA macro added 2014-05-12 01:10:47 +04:00
Vladimir Dubrovin
bc7ca3af09 intip changed to intsa
intip changed to intsa for IPv6 use
2014-05-12 01:10:42 +04:00
Vladimir Dubrovin
6b99de69c4 getip46() added
int getip46(int family, unsigned char *name,  struct sockaddr_storage
*sa)
family: IPv4/IPv6 preference order 4, 6, 46, 64 or 0 for getip()
compatibility.
name - hostname,
sa - destination sockaddr (must be large enougth)
returns:
0 fo failed resolution
IP address for family = 0
AF_INET/AF_INET6 overwise.
2014-05-12 01:10:31 +04:00
z3APA3A
f4c6c9d962 legacy counters code removed 2014-04-14 02:14:34 +04:00
Vladimir Dubrovin
2890f06488 traffic counters are changed to 64-bit
traffic counters are changed to 64-bit using pstdint.h
2014-04-10 03:34:59 +04:00
z3APA3A
a060376f1e initial import to git 2014-04-08 13:03:21 +04:00