aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2011-06-06 18:56:30 +0200
committerAndreas Schneider <asn@cryptomilk.org>2011-06-06 18:56:30 +0200
commit640e3830f295baae596cc34ec2fc79fc08807d0f (patch)
treebd41a63c93189aaadf29386b6b230ec60d30847f
parent3fa801a9295e1adbfadcecfd193f3a84d307e64a (diff)
downloadlibssh-640e3830f295baae596cc34ec2fc79fc08807d0f.tar.gz
libssh-640e3830f295baae596cc34ec2fc79fc08807d0f.tar.xz
libssh-640e3830f295baae596cc34ec2fc79fc08807d0f.zip
build: Check for ntohll().
This function is available on AIX.
-rw-r--r--ConfigureChecks.cmake1
-rw-r--r--config.h.cmake3
-rw-r--r--src/misc.c6
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;