mirror of
https://github.com/rofl0r/proxychains-ng
synced 2026-05-15 01:52:34 +08:00
Compare commits
5 Commits
@@ -30,7 +30,7 @@ GENH = src/version.h
|
|||||||
CFLAGS += -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe
|
CFLAGS += -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe
|
||||||
NO_AS_NEEDED = -Wl,--no-as-needed
|
NO_AS_NEEDED = -Wl,--no-as-needed
|
||||||
LIBDL = -ldl
|
LIBDL = -ldl
|
||||||
LDFLAGS = -fPIC $(NO_AS_NEEDED) $(LIBDL) -lpthread
|
LDFLAGS = -fPIC $(NO_AS_NEEDED) $(LIBDL) $(PTHREAD)
|
||||||
INC =
|
INC =
|
||||||
PIC = -fPIC
|
PIC = -fPIC
|
||||||
AR = $(CROSS_COMPILE)ar
|
AR = $(CROSS_COMPILE)ar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
ProxyChains-NG ver 4.14 README
|
ProxyChains-NG ver 4.15 README
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
ProxyChains is a UNIX program, that hooks network-related libc functions
|
ProxyChains is a UNIX program, that hooks network-related libc functions
|
||||||
@@ -52,6 +52,18 @@ ProxyChains-NG ver 4.14 README
|
|||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
----------
|
----------
|
||||||
|
Version 4.15
|
||||||
|
- fix configure script for buggy binutils version
|
||||||
|
- initialize rand_seed with nano-second granularity
|
||||||
|
- add support for numeric ipv6 in getaddrinfo
|
||||||
|
- fix bug in getaddrinfo when node is null and !passive
|
||||||
|
- add dnat feature
|
||||||
|
- add raw proxy type
|
||||||
|
- add haiku support
|
||||||
|
- add proxy_dns_old to emulate proxychains 3.1 behaviour
|
||||||
|
- add new proxy_dns_daemon feature (experimental)
|
||||||
|
- various other fixes
|
||||||
|
|
||||||
Version 4.14
|
Version 4.14
|
||||||
- allow alternative proto://user:pass@ip:port syntax for proxylist
|
- allow alternative proto://user:pass@ip:port syntax for proxylist
|
||||||
- fix endless loop in round robin mode when all proxies are down (#147)
|
- fix endless loop in round robin mode when all proxies are down (#147)
|
||||||
@@ -236,7 +248,7 @@ Known Problems:
|
|||||||
|
|
||||||
Community:
|
Community:
|
||||||
----------
|
----------
|
||||||
#proxychains on irc.freenode.net
|
#proxychains on irc.libera.chat
|
||||||
|
|
||||||
Donations:
|
Donations:
|
||||||
----------
|
----------
|
||||||
|
|||||||
@@ -19,11 +19,12 @@ check_compile() {
|
|||||||
printf "checking %s ... " "$1"
|
printf "checking %s ... " "$1"
|
||||||
printf "$3" > "$tmpc"
|
printf "$3" > "$tmpc"
|
||||||
local res=0
|
local res=0
|
||||||
$CC $OUR_CPPFLAGS $CPPFLAGS $2 $CFLAGS "$tmpc" -o /dev/null >/dev/null 2>&1 \
|
$CC $OUR_CPPFLAGS $CPPFLAGS $2 $CFLAGS "$tmpc" -o "$tmpc".out >/dev/null 2>&1 \
|
||||||
|| res=1
|
|| res=1
|
||||||
test x$res = x0 && \
|
test x$res = x0 && \
|
||||||
{ printf "yes\n" ; test x"$2" = x || OUR_CPPFLAGS="$OUR_CPPFLAGS $2" ; } \
|
{ printf "yes\n" ; test x"$2" = x || OUR_CPPFLAGS="$OUR_CPPFLAGS $2" ; } \
|
||||||
|| printf "no\n"
|
|| printf "no\n"
|
||||||
|
rm -f "$tmpc".out
|
||||||
return $res
|
return $res
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,7 +50,8 @@ check_compile_run() {
|
|||||||
|
|
||||||
check_link_silent() {
|
check_link_silent() {
|
||||||
printf "$2" > "$tmpc"
|
printf "$2" > "$tmpc"
|
||||||
$CC $OUR_CPPFLAGS $CPPFLAGS $1 $CFLAGS "$tmpc" -o /dev/null >/dev/null 2>&1
|
$CC $OUR_CPPFLAGS $CPPFLAGS $1 $CFLAGS "$tmpc" -o "$tmpc".out >/dev/null 2>&1
|
||||||
|
rm -f "$tmpc".out
|
||||||
}
|
}
|
||||||
|
|
||||||
check_link() {
|
check_link() {
|
||||||
@@ -165,6 +167,9 @@ check_compile 'whether we have pipe2() and O_CLOEXEC' "-DHAVE_PIPE2" \
|
|||||||
check_compile 'whether we have SOCK_CLOEXEC' "-DHAVE_SOCK_CLOEXEC" \
|
check_compile 'whether we have SOCK_CLOEXEC' "-DHAVE_SOCK_CLOEXEC" \
|
||||||
'#define _GNU_SOURCE\n#include <sys/socket.h>\nint main() {\nreturn socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, 0);}'
|
'#define _GNU_SOURCE\n#include <sys/socket.h>\nint main() {\nreturn socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, 0);}'
|
||||||
|
|
||||||
|
check_compile 'whether we have clock_gettime' "-DHAVE_CLOCK_GETTIME" \
|
||||||
|
'#define _GNU_SOURCE\n#include <time.h>\nint main() {\nstruct timespec now;clock_gettime(CLOCK_REALTIME, &now);\nreturn now.tv_sec ^ now.tv_nsec;}'
|
||||||
|
|
||||||
check_define __APPLE__ && {
|
check_define __APPLE__ && {
|
||||||
mac_detected=true
|
mac_detected=true
|
||||||
check_define __x86_64__ && mac_64=true
|
check_define __x86_64__ && mac_64=true
|
||||||
@@ -208,6 +213,15 @@ fi
|
|||||||
echo "$LD_SONAME_FLAG"
|
echo "$LD_SONAME_FLAG"
|
||||||
echo "LD_SET_SONAME = -Wl,$LD_SONAME_FLAG," >> config.mak
|
echo "LD_SET_SONAME = -Wl,$LD_SONAME_FLAG," >> config.mak
|
||||||
|
|
||||||
|
if check_link "checking whether we can use -lpthread" "-lpthread" \
|
||||||
|
"int main(){return 0;}" ; then
|
||||||
|
echo "PTHREAD = -lpthread" >> config.mak
|
||||||
|
else
|
||||||
|
check_link "checking whether we can use -pthread" "-pthread" \
|
||||||
|
"int main(){return 0;}" || fail "no pthread support detected"
|
||||||
|
echo "PTHREAD = -pthread" >> config.mak
|
||||||
|
fi
|
||||||
|
|
||||||
make_cmd=make
|
make_cmd=make
|
||||||
if ismac ; then
|
if ismac ; then
|
||||||
echo LDSO_SUFFIX=dylib>>config.mak
|
echo LDSO_SUFFIX=dylib>>config.mak
|
||||||
|
|||||||
+11
-1
@@ -127,8 +127,18 @@ static void setup_hooks(void) {
|
|||||||
static int close_fds[16];
|
static int close_fds[16];
|
||||||
static int close_fds_cnt = 0;
|
static int close_fds_cnt = 0;
|
||||||
|
|
||||||
|
static unsigned get_rand_seed(void) {
|
||||||
|
#ifdef HAVE_CLOCK_GETTIME
|
||||||
|
struct timespec now;
|
||||||
|
clock_gettime(CLOCK_REALTIME, &now);
|
||||||
|
return now.tv_sec ^ now.tv_nsec;
|
||||||
|
#else
|
||||||
|
return time(NULL);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void do_init(void) {
|
static void do_init(void) {
|
||||||
srand(time(NULL));
|
srand(get_rand_seed());
|
||||||
core_initialize();
|
core_initialize();
|
||||||
|
|
||||||
/* read the config file */
|
/* read the config file */
|
||||||
|
|||||||
Reference in New Issue
Block a user