diff options
author | Ethan F <69695757+ethanf89@users.noreply.github.com> | 2020-08-17 11:31:04 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-17 11:31:04 +0300 |
commit | 0ee5db605b3c9884ff24a2ddcc346f24b76591c5 (patch) | |
tree | 4fa7a954e61affb2b9125de07e6c2b1bbec9dd7a | |
parent | bf2ef2ce38441ef9d3897ca5ef28414dbef3623f (diff) |
Add Haiku support (#340)
-rw-r--r-- | README | 2 | ||||
-rwxr-xr-x | configure | 8 | ||||
-rw-r--r-- | src/common.c | 7 | ||||
-rw-r--r-- | src/libproxychains.c | 1 |
4 files changed, 17 insertions, 1 deletions
@@ -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 *********** @@ -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) |