Update to 0.8.11

Remove patches/patch-aa: code no longer used
Fix Makefile.unix: from FreeBSD ports
Add documentation to package
Add rcd script

Changes:
--------
19.10.2017
Releasing as 0.8.11
Minor bugfixes / improvements:
! Fixed: deadlock on insufficient resources
! Fixed: race condition in ssl_plugin
! Fixed: minor memory leak on configuration reload
! Fixed: recursion detection was not working
! Fixed: %n for IPv6 in logging terminates log record
! Fixed: reverse PTR validation (required for dnsauth)
! Fixed: error on external 0.0.0.0 for NOIPV6 (light version)
+ Better support for IPv6 in ftppr

25.06.2017
Releasing as 0.8.10
!Fix: parent proxy can be used in some cases where it shouldn't
!Fix: bandlimiters may not work for older connections on configuration reload

01.02.2017
Releasing as 0.8.9
!Fix: tcppm may fail if used with parent proxy

16.12.2016
Releasing as 0.8.8
!! Fix resolver for non-compressed reply parsing (on mixed-case sensitive resolvers)
! Fix plugins export on OpenWatcom compiler (light version)
! Fix SOCKSv5 parent over IPv6 network

04.09.2016
Releasing as 0.8.7
! Fix 'daemon' command for Linux
! Fix 'extip' redirections 00009 errors
! Fix counters for older Win platforms
! Resolve logging race conditions
! attempt to fix pam_auth race conditions
! FTP proxy workaround for broken gethostname() on some libc limplementations
! authcache IP matching corrected
! fix SOCKSv5 BIND/UDP ASSOC
! use setreuid/setregid instead of setuid / setgid
- OpenWatcom makefiles for Windows
- -u2 support for proxy
- support %i in logformat
- force/noforce configuration commands to disconnect / do not disconnect clients if nolonger match ACL after configuration change
- support longer external passwords

Lite version of Windows binaries is switched to OpenWatcom. It will hopefully remove int64-related msvcrt.dll issues on old Windows versions.

07.03.2016
Releasing as 0.8.6
! Fix: random 00012 errors in some configurations

02.03.2016
Releasing as 0.8.5
!Fix: mutex was used prior to initialization on 'log' command processing

28.02.2016
Releasing as 0.8.4
+ Build PamPlugin on *nix
- stacksize and -S options, stacksize defaults changed for FreeBSD
- extip redirection type added
! SSL plugin fix to correct handling of certificates path
! fixed random errors on IPv6 connect

26.01.2016
Releasing as 0.8.3
! fixed: use SASIZE() instead of sizeof() in connect() for FreeBSD compatibility

3proxy-0.8.3-lite.zip - Windows binaries, Lite version compatible with old Windows versions
3proxy-0.8.3.zip / 3proxy-0.8.3-x64.zip - 32/64 Windows binraries, compatible with Windows Vista / 2008 server and above

23.01.2016
Releasing as 0.8.2
!! Fix transparent flag not reset after keep-alive connection, can lead to DoS by authenticated user.
! Do not use SO_REUSEADDR by default (leads to random 00013 errors under some glibc versions)
! Use SASIZE() instead of sizeof() in bind() for FreeBSD compatibility

23.01.2016
Releasing as 0.7.1.4
!! Fix transparent flag not reset after keep-alive connection, can lead to
DoS from authenticated user.

21.01.2016
Releasing as 0.8.1
!!Fix: destination IP may be not checked against ACL

19.01.2016
Releasing as 0.8.0
+ IPv6 support
- back connect support
- name resolution over TCP, parent proxy support for dnspr
! multiple race conditions fixed
! reduced memory usage
! Generate Forwarded: header instead of X-Forwarded-For:
! Default name resolution is non-blocking in *nix
Read HowTo for new functionality description
Update from 0.7 is recommended if you use 3proxy under high load

12.01.2016
Releasing as 0.8-pre


+ IPv6 support
- Connect back (reverse connect) proxy
- DNS requests redirection via parent proxy over TCP (including UDP->TCP mapping)
- SSLPlugin for TLS/SSL traffic decryption
- multiple race conditions fixed on configuration reload

15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication15.09.2015
Releasing as 0.7.1.3
! traffic displayed incorrectly
! archiver doesn't add suffix if logname contains macro
! fix potential race condition on configuration reload
! fix FTP over HTTP authentication
This commit is contained in:
triaxx 2018-02-19 21:25:46 +00:00
parent 61f32f86b2
commit 08a12ff279
10 changed files with 156 additions and 27 deletions

View file

@ -1,7 +1,7 @@
# $NetBSD: Makefile,v 1.10 2017/08/01 14:59:02 wiz Exp $
# $NetBSD: Makefile,v 1.11 2018/02/19 21:25:46 triaxx Exp $
#
DISTNAME= 3proxy-0.7.1.2
DISTNAME= 3proxy-0.8.11
CATEGORIES= net
MASTER_SITES= https://3proxy.ru/${DISTNAME:S/3proxy-//}/
EXTRACT_SUFX= .tgz
@ -13,13 +13,27 @@ COMMENT= Multi-protocol proxy
# clear exactly which version of the GPL is intended; ${WRKSRC}/License
# says "current version of GNU GPL" without specifying a numeric version
# number. 3proxy-0.6.* will have a different license.
LICENSE= 3proxy-0.5-license
# 3proxy-0.7-license is now inspired by BSD license.
LICENSE= 3proxy-0.7-license
EGDIR= ${PREFIX}/share/examples/${PKGBASE}
REQD_FILES= ${EGDIR}/3proxy.cfg.sample \
${PKG_SYSCONFDIR}/${PKGBASE}/3proxy.cfg
OWN_DIRS+= ${PKG_SYSCONFDIR}/${PKGBASE} ${VARBASE}/log/${PKGBASE}
RCD_SCRIPTS= threeproxy
WRKSRC= ${WRKDIR}/${PKGBASE}
MAKE_FILE= Makefile.unix
MAKE_FLAGS+= LIBS=${BUILDLINK_LDADD.dl:Q}
INSTALLATION_DIRS= sbin ${PKGMANDIR}/man5 ${PKGMANDIR}/man8
INSTALLATION_DIRS= sbin ${PKGMANDIR}/man5 ${PKGMANDIR}/man8 ${EGDIR}
SUBST_CLASSES+= cfg
SUBST_STAGE.cfg= pre-install
SUBST_MESSAGE.cfg= Adjusting config sample file.
SUBST_FILES.cfg= cfg/3proxy.cfg.sample
SUBST_SED.cfg= -e "s|@PREFIX@|${PREFIX}|g"
SUBST_SED.cfg+= -e "s|@PKG_SYSCONFDIR@|${PKG_SYSCONFDIR}|g"
SUBST_SED.cfg+= -e "s|@VARBASE@|${VARBASE}|g"
# We install only 3proxy and its man pages. There are several other
# binaries which we don't install, because the 3proxy executable
@ -30,7 +44,9 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/3proxy ${DESTDIR}${PREFIX}/sbin/.
${INSTALL_MAN} ${WRKSRC}/man/3proxy.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8/.
${INSTALL_MAN} ${WRKSRC}/man/3proxy.cfg.3 \
${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/3proxy.cfg.5
${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/3proxy.cfg.5
${INSTALL_DATA} ${WRKSRC}/cfg/3proxy.cfg.sample \
${DESTDIR}${EGDIR}/3proxy.cfg.sample
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"

View file

@ -1,4 +1,5 @@
@comment $NetBSD: PLIST,v 1.2 2016/07/08 15:55:24 rillig Exp $
@comment $NetBSD: PLIST,v 1.3 2018/02/19 21:25:46 triaxx Exp $
man/man5/3proxy.cfg.5
man/man8/3proxy.8
sbin/3proxy
share/examples/3proxy/3proxy.cfg.sample

View file

@ -1,11 +1,12 @@
$NetBSD: distinfo,v 1.5 2016/07/08 15:55:24 rillig Exp $
$NetBSD: distinfo,v 1.6 2018/02/19 21:25:46 triaxx Exp $
SHA1 (3proxy-0.7.1.2.tgz) = 58d92a3b61767c83a16f2cfd784458972083c63b
RMD160 (3proxy-0.7.1.2.tgz) = a3be3d2c786cc52bfde46b7f9630a79eaf7b983c
SHA512 (3proxy-0.7.1.2.tgz) = c7f4e25d2630e8c6c25bbc09a5f9f201448d57a85d404cd1f6304946d9a31083845bd8d481f610fe1cd1f56be349eb774cdae135430efcfdd1952a0403d01735
Size (3proxy-0.7.1.2.tgz) = 478532 bytes
SHA1 (patch-aa) = ac13f04cff2fa0b0adea6306d9f645ff26452daa
SHA1 (patch-ab) = de12687ae56ed8107259a4bc3ca04705b97b7bc8
SHA1 (patch-ac) = 3b8479dd2cf736a87e618128e91f402611178236
SHA1 (patch-ad) = bce24c6e2e071196d8fd0715e11f4c68144150c5
SHA1 (patch-ae) = 1f3b07a3c2a1d9729043bcee7b359c98644e8257
SHA1 (3proxy-0.8.11.tgz) = 0bef5462e558db2d86cce92f8dc916b494dd7bde
RMD160 (3proxy-0.8.11.tgz) = 19f0d2903dcad680f5442a49d962cac1f874cae4
SHA512 (3proxy-0.8.11.tgz) = 4160684892292a0c4666f8b8f3bdba0c0846842816ef4f6d0ce7286b520a3cda2ceee76580d2e61942afb9404a8ad93aa0260043acd4ffbfc1c38b3e31857c67
Size (3proxy-0.8.11.tgz) = 511157 bytes
SHA1 (patch-ab) = 3ad025c8577f1494d6949efcd5bf104672027a0d
SHA1 (patch-ac) = e4e4a005e815c7cd353103bbcbbfdb849d637517
SHA1 (patch-ad) = 8081f363dbf0232e5d1db1bc5e09f93ac7cfe95b
SHA1 (patch-ae) = 467ad84a16ee806da1bbc3d297434bd31a25bb27
SHA1 (patch-cfg_3proxy.cfg.sample) = c8db82b11704547ec26c67059e71231c5b667135
SHA1 (patch-Makefile.unix) = bcaf278e55d954ecc758a0f01c7e35f8d7a7fca2

View file

@ -0,0 +1,18 @@
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: threeproxy.sh,v 1.1 2018/02/19 21:25:46 triaxx Exp $
#
# PROVIDE: threeproxy
# REQUIRE: DAEMON LOGIN
. /etc/rc.subr
name="threeproxy"
rcvar=$name
command="@PREFIX@/sbin/3proxy"
command_args="@PKG_SYSCONFDIR@/3proxy/3proxy.cfg"
required_files="@PKG_SYSCONFDIR@/3proxy/3proxy.cfg"
load_rc_config $name
run_rc_command "$1"

View file

@ -0,0 +1,32 @@
$NetBSD: patch-Makefile.unix,v 1.1 2018/02/19 21:25:46 triaxx Exp $
Fix Makefile inconsistency
From FreeBSD ports
--- Makefile.unix.orig 2017-10-19 14:25:42.000000000 +0000
+++ Makefile.unix
@@ -8,18 +8,18 @@
# library support. Add -DSAFESQL for poorely written ODBC library / drivers.
BUILDDIR =
-CC = gcc
+CC ?= gcc
# you may need -L/usr/pkg/lib for older NetBSD versions
-CFLAGS = -g -O2 -c -pthread -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL
+CFLAGS = -c -O2 -pipe -fstack-protector -fno-strict-aliasing -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL
COUT = -o
-LN = gcc
-LDFLAGS = -O2 -pthread
+LN = ${CC}
+LDFLAGS = -pthread
# -lpthreads may be reuqired on some platforms instead of -pthreads
# -ldl or -lld may be required for some platforms
DCFLAGS = -fpic
DLFLAGS = -shared
-DLSUFFICS = .ld.so
+DLSUFFICS = .so
LIBS =
LIBSPREFIX = -l
LIBSSUFFIX =

View file

@ -1,4 +1,6 @@
$NetBSD: patch-ab,v 1.2 2015/04/06 02:26:53 rodent Exp $
$NetBSD: patch-ab,v 1.3 2018/02/19 21:25:46 triaxx Exp $
Compliance with toupper() documentation.
--- src/ntlm.c.orig 2015-02-17 13:07:21.000000000 +0000
+++ src/ntlm.c

View file

@ -1,4 +1,6 @@
$NetBSD: patch-ac,v 1.2 2015/04/06 02:26:53 rodent Exp $
$NetBSD: patch-ac,v 1.3 2018/02/19 21:25:46 triaxx Exp $
Compliance with isspace() documentation.
--- src/webadmin.c.orig 2015-02-17 13:07:21.000000000 +0000
+++ src/webadmin.c

View file

@ -1,10 +1,13 @@
$NetBSD: patch-ad,v 1.2 2015/04/06 02:26:53 rodent Exp $
$NetBSD: patch-ad,v 1.3 2018/02/19 21:25:46 triaxx Exp $
--- src/common.c.orig 2015-02-17 13:07:20.000000000 +0000
Calling usleep for 1000000 microseconds or more is not allowed, so add a
myusleep() wrapper to DTRT.
--- src/common.c.orig 2017-10-19 14:31:30.000000000 +0000
+++ src/common.c
@@ -719,3 +719,21 @@ unsigned long getip(unsigned char *name)
@@ -881,3 +881,21 @@ unsigned long getip46(int family, unsign
return 0;
#endif
return retval;
}
+
+/*

View file

@ -1,8 +1,12 @@
$NetBSD: patch-ae,v 1.3 2016/07/08 15:55:24 rillig Exp $
$NetBSD: patch-ae,v 1.4 2018/02/19 21:25:46 triaxx Exp $
--- src/proxy.h.orig 2015-02-17 13:07:21.000000000 +0000
Fix build on OpenBSD and Bitrig.
Calling usleep for 1000000 microseconds or more is not allowed, so add a
myusleep() wrapper to DTRT.
--- src/proxy.h.orig 2017-10-19 14:25:44.000000000 +0000
+++ src/proxy.h
@@ -22,7 +22,9 @@
@@ -21,7 +21,9 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
@ -12,9 +16,9 @@ $NetBSD: patch-ae,v 1.3 2016/07/08 15:55:24 rillig Exp $
#include <fcntl.h>
#include <time.h>
@@ -101,6 +103,8 @@
@@ -107,6 +109,8 @@
#endif
#define daemonize() daemon(1,1)
void daemonize(void);
#define SLEEPTIME 1000
+#define usleep(usecs) myusleep(usecs)
+int myusleep(useconds_t);

View file

@ -0,0 +1,50 @@
$NetBSD: patch-cfg_3proxy.cfg.sample,v 1.1 2018/02/19 21:25:46 triaxx Exp $
Adjust PATH according to pkgsrc defined directories.
--- cfg/3proxy.cfg.sample.orig 2017-10-19 14:53:32.000000000 +0000
+++ cfg/3proxy.cfg.sample
@@ -1,7 +1,7 @@
-#!/usr/local/bin/3proxy
+#!@PREFIX@/bin/3proxy
# Yes, 3proxy.cfg can be executable, in this case you should place
# something like
-#config /usr/local/3proxy/3proxy.cfg
+#config @PKG_SYSCONFDIR@/3proxy/3proxy.cfg
# to show which configuration 3proxy should re-read on realod.
#system "echo Hello world!"
@@ -26,19 +26,19 @@ timeouts 1 5 30 60 180 1800 15 60
users 3APA3A:CL:3apa3a "test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1"
# note that "" required, overvise $... is treated as include file name.
# $1$qwer$CHFTUFGqkjue9HyhcMHEe1 is 'test' in MD5 crypt format.
-#users $/usr/local/etc/3proxy/passwd
+#users $@PKG_SYSCONFDIR@/etc/3proxy/passwd
# this example shows you how to include passwd file. For included files
# <CR> and <LF> are treated as field separators.
-#daemon
+daemon
# now we will not depend on any console (daemonize). daemon must be given
# before any significant command on *nix.
-service
+#service
# service is required under NT if you want 3proxy to start as service
-#log /var/log/3proxy/log D
-log c:\3proxy\logs\3proxy.log D
+log @VARBASE@/log/3proxy/log D
+#log c:\3proxy\logs\3proxy.log D
# log allows to specify log file location and rotation, D means logfile
# is created daily
@@ -193,7 +193,7 @@ admin
#tcppm 443 websrv 443
-#chroot /usr/local/jail
+#chroot @VARBASE@/chroot/3proxy
#setgid 65535
#setuid 65535
# now we needn't any root rights. We can chroot and setgid/setuid.