From 640e3830f295baae596cc34ec2fc79fc08807d0f Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 6 Jun 2011 18:56:30 +0200 Subject: [PATCH] build: Check for ntohll(). This function is available on AIX. --- ConfigureChecks.cmake | 1 + config.h.cmake | 3 +++ src/misc.c | 6 ++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 93634b16..0a555a9e 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -119,6 +119,7 @@ if (UNIX) check_function_exists(poll HAVE_POLL) check_function_exists(select HAVE_SELECT) check_function_exists(cfmakeraw HAVE_CFMAKERAW) + check_function_exists(ntohll HAVE_NTOHLL) endif (UNIX) set(LIBSSH_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} CACHE INTERNAL "libssh required system libraries") diff --git a/config.h.cmake b/config.h.cmake index 235e4f1d..e0ed57c3 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -77,6 +77,9 @@ /* Define to 1 if you have the `clock_gettime' function. */ #cmakedefine HAVE_CLOCK_GETTIME 1 +/* Define to 1 if you have the `ntohll' function. */ +#cmakedefine HAVE_NTOHLL 1 + /*************************** LIBRARIES ***************************/ /* Define to 1 if you have the `crypto' library (-lcrypto). */ diff --git a/src/misc.c b/src/misc.c index 008be1b7..43ac7013 100644 --- a/src/misc.c +++ b/src/misc.c @@ -286,18 +286,20 @@ int ssh_is_ipaddr(const char *str) { #endif /* _WIN32 */ +#ifndef HAVE_NTOHLL uint64_t ntohll(uint64_t a) { #ifdef WORDS_BIGENDIAN return a; -#else +#else /* WORDS_BIGENDIAN */ uint32_t low = (uint32_t)(a & 0xffffffff); uint32_t high = (uint32_t)(a >> 32); low = ntohl(low); high = ntohl(high); return ((((uint64_t) low) << 32) | ( high)); -#endif +#endif /* WORDS_BIGENDIAN */ } +#endif /* HAVE_NTOHLL */ char *ssh_lowercase(const char* str) { char *new, *p;