Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rofl0r/proxychains-ng.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEthan F <69695757+ethanf89@users.noreply.github.com>2020-08-17 11:31:04 +0300
committerGitHub <noreply@github.com>2020-08-17 11:31:04 +0300
commit0ee5db605b3c9884ff24a2ddcc346f24b76591c5 (patch)
tree4fa7a954e61affb2b9125de07e6c2b1bbec9dd7a
parentbf2ef2ce38441ef9d3897ca5ef28414dbef3623f (diff)
Add Haiku support (#340)
-rw-r--r--README2
-rwxr-xr-xconfigure8
-rw-r--r--src/common.c7
-rw-r--r--src/libproxychains.c1
4 files changed, 17 insertions, 1 deletions
diff --git a/README b/README
index a0c336b..7e8fa9d 100644
--- a/README
+++ b/README
@@ -16,7 +16,7 @@ ProxyChains-NG ver 4.14 README
If your program doesn't work with proxychains, consider using an
iptables based solution instead; this is much more robust.
- Supported Platforms: Linux, BSD, Mac.
+ Supported Platforms: Linux, BSD, Mac, Haiku.
*********** ATTENTION ***********
diff --git a/configure b/configure
index dc06a77..993b20c 100755
--- a/configure
+++ b/configure
@@ -148,6 +148,10 @@ solaris_detected=false
issolaris() {
$solaris_detected
}
+haiku_detected=false
+ishaiku() {
+ $haiku_detected
+}
check_compile 'whether we have GNU-style getservbyname_r()' "-DHAVE_GNU_GETSERVBYNAME_R" \
'#define _GNU_SOURCE\n#include <netdb.h>\nint main() {\nstruct servent *se = 0;struct servent se_buf;char buf[1024];\ngetservbyname_r("foo", (void*) 0, &se_buf, buf, sizeof(buf), &se);\nreturn 0;}'
@@ -168,6 +172,7 @@ check_compile_run 'whether OpenBSDs fclose() (illegally) calls close()' \
OUR_CPPFLAGS="$OUR_CPPFLAGS -DBROKEN_FCLOSE"
}
check_define __sun && check_define __SVR4 && solaris_detected=true
+check_define __HAIKU__ && haiku_detected=true
echo "CC=$CC">>config.mak
[ -z "$CPPFLAGS" ] || echo "CPPFLAGS=$CPPFLAGS">>config.mak
@@ -213,6 +218,9 @@ elif isbsd ; then
elif issolaris; then
echo "CFLAGS+=-DIS_SOLARIS -D__EXTENSIONS__" >> config.mak
echo "SOCKET_LIBS=-lsocket -lnsl" >> config.mak
+elif ishaiku ; then
+ echo LIBDL=>>config.mak
+ echo "CFLAGS+=-DIS_HAIKU" >> config.mak
fi
echo "Done, now run $make_cmd && $make_cmd install"
diff --git a/src/common.c b/src/common.c
index c126ecf..2af642e 100644
--- a/src/common.c
+++ b/src/common.c
@@ -78,6 +78,13 @@ char *get_config_path(char* default_path, char* pbuf, size_t bufsize) {
path = pbuf;
if(check_path(path))
goto have;
+
+ // priority 3b: ~/config/settings/proxychains.conf (for haiku)
+ path = getenv("HOME");
+ snprintf(pbuf, bufsize, "%s/config/settings/%s", path, PROXYCHAINS_CONF_FILE);
+ path = pbuf;
+ if(check_path(path))
+ goto have;
// priority 4: $SYSCONFDIR/proxychains.conf
path = SYSCONFDIR "/" PROXYCHAINS_CONF_FILE;
diff --git a/src/libproxychains.c b/src/libproxychains.c
index 670d447..318c937 100644
--- a/src/libproxychains.c
+++ b/src/libproxychains.c
@@ -38,6 +38,7 @@
#include "core.h"
#include "common.h"
+#undef satosin
#define satosin(x) ((struct sockaddr_in *) &(x))
#define SOCKADDR(x) (satosin(x)->sin_addr.s_addr)
#define SOCKADDR_2(x) (satosin(x)->sin_addr)