From 6dda28a2c8f32f72f2e857637fcec6d3a24edda7 Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Sat, 3 Mar 2012 14:24:05 +0800 Subject: [PATCH 1/3] bugfix: localnet conflicts with proxydns --- src/libproxychains.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libproxychains.c b/src/libproxychains.c index 0353b4a..f9fcdcc 100644 --- a/src/libproxychains.c +++ b/src/libproxychains.c @@ -285,6 +285,7 @@ int connect(int sock, const struct sockaddr *addr, unsigned int len) { struct in_addr *p_addr_in; unsigned short port; size_t i; + int remote_dns_connect = 0; if(!init_l) init_lib(); @@ -302,7 +303,11 @@ int connect(int sock, const struct sockaddr *addr, unsigned int len) { PDEBUG("target: %s\n", inet_ntop(AF_INET, p_addr_in, str, sizeof(str))); PDEBUG("port: %d\n", port); #endif - for(i = 0; i < num_localnet_addr; i++) { + + // check if connect called from proxydns + remote_dns_connect = ((p_addr_in->s_addr & 0xff) == remote_dns_subnet); + + for(i = 0; i < num_localnet_addr && !remote_dns_connect; i++) { if((localnet_addr[i].in_addr.s_addr & localnet_addr[i].netmask.s_addr) == (p_addr_in->s_addr & localnet_addr[i].netmask.s_addr)) { if(localnet_addr[i].port || localnet_addr[i].port == port) { From b6746997d2cc6a7b581982e1b478a6b26f096d71 Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Sat, 3 Mar 2012 14:30:14 +0800 Subject: [PATCH 2/3] bugfix: localnet conflicts with proxydns (fixed bytes-order) --- src/libproxychains.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libproxychains.c b/src/libproxychains.c index f9fcdcc..1d02b58 100644 --- a/src/libproxychains.c +++ b/src/libproxychains.c @@ -305,7 +305,7 @@ int connect(int sock, const struct sockaddr *addr, unsigned int len) { #endif // check if connect called from proxydns - remote_dns_connect = ((p_addr_in->s_addr & 0xff) == remote_dns_subnet); + remote_dns_connect = (ntohl(p_addr_in->s_addr) >> 24 == remote_dns_subnet); for(i = 0; i < num_localnet_addr && !remote_dns_connect; i++) { if((localnet_addr[i].in_addr.s_addr & localnet_addr[i].netmask.s_addr) From 50820ce80d1616f89e90d164c58be3f1d7514127 Mon Sep 17 00:00:00 2001 From: Jianing Yang Date: Sat, 3 Mar 2012 14:57:49 +0800 Subject: [PATCH 3/3] new: added DESTDIR option to Makefile so that packaging will be easier --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 151f940..33546b0 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ SRCS = $(sort $(wildcard src/*.c)) OBJS = $(SRCS:.c=.o) LOBJS = src/core.o src/libproxychains.o -CCFLAGS = -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe -DTHREAD_SAFE -Werror +CCFLAGS = -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe -DTHREAD_SAFE -Werror LDFLAGS = -shared -fPIC -ldl -lpthread INC = PIC = -fPIC @@ -46,10 +46,10 @@ all: $(ALL_LIBS) $(ALL_TOOLS) #install: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(DESTDIR)$(LDSO_PATHNAME) install: - install -d $(bindir) $(libdir) $(confdir) $(includedir) - install $(INSTALL_FLAGS) 755 $(ALL_TOOLS) $(bindir)/ - install $(INSTALL_FLAGS) 644 $(ALL_LIBS) $(libdir)/ - install $(INSTALL_FLAGS) 644 src/proxychains.conf $(confdir) + install -d $(DESTDIR)/$(bindir) $(DESTDIR)/$(libdir) $(DESTDIR)/$(confdir) $(DESTDIR)/$(includedir) + install $(INSTALL_FLAGS) 755 $(ALL_TOOLS) $(DESTDIR)/$(bindir)/ + install $(INSTALL_FLAGS) 644 $(ALL_LIBS) $(DESTDIR)/$(libdir)/ + install $(INSTALL_FLAGS) 644 src/proxychains.conf $(DESTDIR)/$(confdir) clean: rm -f $(ALL_LIBS)