From 070051bb734383c714893ec61453cd401d849f23 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Fri, 27 Jan 2012 21:30:42 +0100 Subject: [PATCH] use macros for mutex stuff --- src/core.c | 21 +++++---------------- src/core.h | 7 +++++++ src/libproxychains.c | 4 +--- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/core.c b/src/core.c index 1085d23..439d41d 100644 --- a/src/core.c +++ b/src/core.c @@ -69,15 +69,11 @@ uint32_t index_from_internal_ip(ip_type internalip) { char *string_from_internal_ip(ip_type internalip) { char *res = NULL; -#ifdef THREAD_SAFE - pthread_mutex_lock(&internal_ips_lock); -#endif uint32_t index = index_from_internal_ip(internalip); + MUTEX_LOCK(&internal_ips_lock); if(index < internal_ips.counter) res = internal_ips.list[index]->string; -#ifdef THREAD_SAFE - pthread_mutex_unlock(&internal_ips_lock); -#endif + MUTEX_UNLOCK(&internal_ips_lock); return res; } @@ -790,9 +786,7 @@ struct hostent *proxy_gethostbyname(const char *name) { hash = dalias_hash((char *) name); -#ifdef THREAD_SAFE - pthread_mutex_lock(&internal_ips_lock); -#endif + MUTEX_LOCK(&internal_ips_lock); // see if we already have this dns entry saved. if(internal_ips.counter) { @@ -839,10 +833,7 @@ struct hostent *proxy_gethostbyname(const char *name) { have_ip: -#ifdef THREAD_SAFE - pthread_mutex_unlock(&internal_ips_lock); -#endif - + MUTEX_UNLOCK(&internal_ips_lock); strncpy(addr_name, name, sizeof(addr_name)); @@ -851,9 +842,7 @@ struct hostent *proxy_gethostbyname(const char *name) { return &hostent_space; err_plus_unlock: -#ifdef THREAD_SAFE - pthread_mutex_unlock(&internal_ips_lock); -#endif + MUTEX_UNLOCK(&internal_ips_lock); return NULL; } int proxy_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { diff --git a/src/core.h b/src/core.h index fdeed01..1235446 100644 --- a/src/core.h +++ b/src/core.h @@ -40,6 +40,13 @@ extern internal_ip_lookup_table internal_ips; #ifdef THREAD_SAFE #include extern pthread_mutex_t internal_ips_lock; +# define MUTEX_LOCK(x) pthread_mutex_lock(x) +# define MUTEX_UNLOCK(x) pthread_mutex_unlock(x) +# define MUTEX_INIT(x,y) pthread_mutex_init(x, y) +#else +# define MUTEX_LOCK(x) +# define MUTEX_UNLOCK(x) +# define MUTEX_INIT(x,y) #endif /*error codes*/ diff --git a/src/libproxychains.c b/src/libproxychains.c index 24b5413..4b68e83 100644 --- a/src/libproxychains.c +++ b/src/libproxychains.c @@ -61,9 +61,7 @@ static inline void get_chain_data(proxy_data * pd, unsigned int *proxy_count, ch static void init_lib(void); static void init_lib(void) { -#ifdef THREAD_SAFE - pthread_mutex_init(&internal_ips_lock, NULL); -#endif + MUTEX_INIT(&internal_ips_lock, NULL); /* read the config file */ get_chain_data(proxychains_pd, &proxychains_proxy_count, &proxychains_ct);