Merge branch 'master' of ssh://github.com/papadave66/proxychains-ng into merge-from-papadave

Conflicts:
	configure
	src/libproxychains.c
pull/214/head
WHR 2018-01-09 23:56:50 +08:00
commit 4ec07eacc3
4 changed files with 32 additions and 8 deletions

View File

@ -22,7 +22,7 @@ LOBJS = src/nameinfo.o src/version.o \
GENH = src/version.h
CFLAGS += -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe
CFLAGS += -Wall -O0 -g -std=c99 -pipe
NO_AS_NEEDED = -Wl,--no-as-needed
LIBDL = -ldl
LDFLAGS = -fPIC $(NO_AS_NEEDED) $(LIBDL) -lpthread
@ -30,6 +30,7 @@ INC =
PIC = -fPIC
AR = $(CROSS_COMPILE)ar
RANLIB = $(CROSS_COMPILE)ranlib
SOCKET_LIBS =
LDSO_SUFFIX = so
LD_SET_SONAME = -Wl,-soname=
@ -82,7 +83,7 @@ src/version.o: src/version.h
$(LDSO_PATHNAME): $(LOBJS)
$(CC) $(LDFLAGS) $(LD_SET_SONAME)$(LDSO_PATHNAME) $(USER_LDFLAGS) \
-shared -o $@ $(LOBJS)
-shared -o $@ $(LOBJS) $(SOCKET_LIBS)
$(ALL_TOOLS): $(OBJS)
$(CC) src/main.o src/common.o $(USER_LDFLAGS) -o $(PXCHAINS)

28
configure vendored
View File

@ -2,6 +2,7 @@
prefix=/usr/local
OUR_CPPFLAGS=
C99_CFLAGS="-std=c99"
# Get a temporary filename
i=0
@ -14,11 +15,15 @@ done
set +C
trap 'rm "$tmpc"' EXIT INT QUIT TERM HUP
isgnuld() {
ld --version 2> /dev/null | grep -Fq GNU
}
check_compile() {
printf "checking %s ... " "$1"
printf "$3" > "$tmpc"
local res=0
$CC $OUR_CPPFLAGS $CPPFLAGS $2 $CFLAGS -c "$tmpc" -o /dev/null >/dev/null 2>&1 \
$CC $OUR_CPPFLAGS $CPPFLAGS $2 $C99_CFLAGS $CFLAGS -c "$tmpc" -o /dev/null >/dev/null 2>&1 \
|| res=1
test x$res = x0 && \
{ printf "yes\n" ; test x"$2" = x || OUR_CPPFLAGS="$OUR_CPPFLAGS $2" ; } \
@ -29,7 +34,7 @@ check_compile() {
check_define() {
printf "checking whether \$CC defines %s ... " "$1"
local res=1
$CC $OUR_CPPFLAGS $CPPFLAGS $CFLAGS -dM -E - </dev/null | grep "$1" >/dev/null && res=0
$CC $OUR_CPPFLAGS $CPPFLAGS $C99_CFLAGS $CFLAGS -dM -E - </dev/null | grep "$1" >/dev/null && res=0
test x$res = x0 && printf "yes\n" || printf "no\n"
return $res
}
@ -38,7 +43,7 @@ check_compile_run() {
printf "checking %s ... " "$1"
printf "$2" > "$tmpc"
local res=0
$CC $OUR_CPPFLAGS $CPPFLAGS $CFLAGS "$tmpc" -o "$tmpc".out >/dev/null 2>&1 \
$CC $OUR_CPPFLAGS $CPPFLAGS $C99_CFLAGS $CFLAGS "$tmpc" -o "$tmpc".out >/dev/null 2>&1 \
|| res=1
test x$res = x0 && { "$tmpc".out || res=1 ; }
rm -f "$tmpc".out
@ -130,7 +135,13 @@ mac_64=false
ismac64() {
$mac_64
}
solaris_detected=false
issolaris() {
$solaris_detected
}
check_compile "whether fine to define _GNU_SOURCE" "-D_GNU_SOURCE" \
'#include <unistd.h>\nint main() { return 0; }'
check_define __APPLE__ && {
mac_detected=true
@ -144,6 +155,10 @@ check_compile_run 'whether OpenBSDs fclose() (illegally) calls close()' \
'#include <stdio.h>\n#include<stdlib.h>\nint close(int x){exit(0);}int main(){fclose(stdin);return 1;}' && \
OUR_CPPFLAGS="$OUR_CPPFLAGS -DBROKEN_FCLOSE"
}
check_define __sun && check_define __SVR4 && solaris_detected=true
issolaris && for i in 700 600; do
check_compile "whether _XOPEN_SOURCE=$i is suitable for C99 mode" "-D_XOPEN_SOURCE=$i" "#include <unistd.h>" && break
done
echo "CC=$CC">config.mak
[ -z "$CPPFLAGS" ] || echo "CPPFLAGS=$CPPFLAGS">>config.mak
@ -172,6 +187,13 @@ elif isbsd ; then
echo LIBDL=>>config.mak
echo "CFLAGS+=-DIS_BSD">>config.mak
make_cmd=gmake
elif issolaris; then
echo "CFLAGS+=-DIS_SOLARIS -D__EXTENSIONS__" >> config.mak
if ! isgnuld; then
echo "NO_AS_NEEDED=" >> config.mak
echo "LD_SET_SONAME=-Wl,-h," >> config.mak
fi
echo "SOCKET_LIBS=-lsocket -lnsl" >> config.mak
fi
echo "Done, now run $make_cmd && $make_cmd install"

View File

@ -787,8 +787,8 @@ void proxy_freeaddrinfo(struct addrinfo *res) {
free(res);
}
#if defined(IS_MAC) || defined(IS_OPENBSD)
#ifdef IS_OPENBSD /* OpenBSD has its own incompatible getservbyname_r */
#if defined(IS_MAC) || defined(IS_OPENBSD) || defined(IS_SOLARIS)
#if defined(IS_OPENBSD) || defined(IS_SOLARIS) /* OpenBSD and Solaris has its own incompatible getservbyname_r */
#define getservbyname_r mygetservbyname_r
#endif
/* getservbyname on mac is using thread local storage, so we dont need mutex

View File

@ -9,8 +9,9 @@
#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
#undef _XOPEN_SOURCE
#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 700
#endif
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>