gethostbyname() and Makefile fixes

This commit is contained in:
Semion Laptev 2012-10-10 19:19:12 +04:00
parent 6fe50f2b29
commit 7aa95f9304
2 changed files with 10 additions and 1 deletions

View File

@ -18,7 +18,7 @@ OBJS = $(SRCS:.c=.o)
LOBJS = src/core.o src/common.o src/libproxychains.o
CCFLAGS = -Wall -O2 -g -std=c99 -D_GNU_SOURCE -pipe -DTHREAD_SAFE -Werror
LDFLAGS = -shared -fPIC -lpthread
LDFLAGS = -shared -Wl,--no-as-needed -fPIC -pthread -ldl
INC =
PIC = -fPIC
AR = $(CROSS_COMPILE)ar

View File

@ -722,6 +722,7 @@ int connect_proxy_chain(int sock, ip_type target_ip,
static const ip_type local_host = { {127, 0, 0, 1} };
char hostname[256]; // default maximum length of hostname in linux
struct hostent *proxy_gethostbyname(const char *name, struct gethostbyname_data* data) {
char buff[256];
uint32_t i, hash;
@ -743,6 +744,12 @@ struct hostent *proxy_gethostbyname(const char *name, struct gethostbyname_data*
data->resolved_addr = inet_addr(buff);
if(data->resolved_addr == (in_addr_t) (-1))
data->resolved_addr = (in_addr_t) (local_host.as_int);
snprintf(hostname,sizeof hostname, "%s", name);
data->hostent_space.h_name = hostname;
data->hostent_space.h_length = sizeof (in_addr_t);
data->hostent_space.h_addrtype = AF_INET;
return &data->hostent_space;
}
@ -809,6 +816,8 @@ struct hostent *proxy_gethostbyname(const char *name, struct gethostbyname_data*
data->hostent_space.h_name = data->addr_name;
data->hostent_space.h_length = sizeof(in_addr_t);
data->hostent_space.h_addrtype = AF_INET;
return &data->hostent_space;
err_plus_unlock: