commit 8cedb97d013a4d78e81685c45339479e68354db5 Author: Lunar lunar@torproject.org Date: Mon Mar 24 19:31:50 2014 -0400
Fix: change TSOCKS_LOOPBACK bitness
This changes the loopback constant to be in host byte order and use htonl() when needed in network byte order.
With this, tests pass on powerpc.
Signed-off-by: David Goulet dgoulet@ev0ke.net --- src/common/compat.h | 4 ++-- src/common/utils.c | 2 +- tests/unit/test_utils.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/common/compat.h b/src/common/compat.h index e977b41..2058a23 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -101,8 +101,8 @@ void tsocks_mutex_unlock(tsocks_mutex_t *m); #define TSOCKS_CLASSA_NET 0xff000000 #define TSOCKS_LOOPBACK_NET 0x7f000000
-/* Loopback address in network byte order. */ -#define TSOCKS_LOOPBACK 0x0100007f +/* Loopback addresses. */ +#define TSOCKS_LOOPBACK 0x7f000001 #define TSOCKS_LOOPBACK6 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } #define TSOCKS_ANY ((unsigned long int) 0x00000000) #define TSOCKS_ANY6 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } diff --git a/src/common/utils.c b/src/common/utils.c index 890bbde..377dcae 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -277,7 +277,7 @@ int utils_localhost_resolve(const char *name, int af, void *buf, size_t len) assert(buf);
if (af == AF_INET) { - const in_addr_t addr = TSOCKS_LOOPBACK; + const in_addr_t addr = htonl(TSOCKS_LOOPBACK);
entry = match_name(name, localhost_names_v4); if (entry) { diff --git a/tests/unit/test_utils.c b/tests/unit/test_utils.c index a115db1..dc5b0ca 100644 --- a/tests/unit/test_utils.c +++ b/tests/unit/test_utils.c @@ -64,7 +64,7 @@ static void test_is_address_ipv6(void) static void test_localhost_resolve(void) { int ret = 0; - in_addr_t ipv4, loopback = TSOCKS_LOOPBACK; + in_addr_t ipv4, loopback = htonl(TSOCKS_LOOPBACK); struct in6_addr ipv6; const uint8_t loopback6[] = TSOCKS_LOOPBACK6;
@@ -117,7 +117,7 @@ static void test_sockaddr_is_localhost(void) diag("Utils sockaddr is localhost");
sin.sin_family = AF_INET; - sin.sin_addr.s_addr = TSOCKS_LOOPBACK; + sin.sin_addr.s_addr = htonl(TSOCKS_LOOPBACK); ret = utils_sockaddr_is_localhost((const struct sockaddr *) &sin); ok(ret == 1, "Loopback matches localhost");
tor-commits@lists.torproject.org