diff --git a/configure.ac b/configure.ac index 11153ea..b07291a 100644 --- a/configure.ac +++ b/configure.ac @@ -285,19 +285,21 @@ AC_CHECK_DECL([mach_absolute_time], [Define if mach_absolute_time is available.])], , [[#include ]]) -AC_CHECK_DECL([htobe64], - [AC_DEFINE([HAVE_HTOBE64], [1], - [Define if htobe64 and friends exist.])], +AC_CHECK_DECLS([be64toh, betoh64], [], [], + [[#if defined(HAVE_ENDIAN_H) +#include +#elif defined(HAVE_SYS_ENDIAN_H) +#include +#include +#endif]]) + +AS_IF([test x"$ac_cv_have_decl_be64toh" != xyes && + test x"$ac_cv_have_decl_betoh64" != xyes], [AC_CHECK_DECL([OSSwapHostToBigInt64], [AC_DEFINE([HAVE_OSX_SWAP], [1], [Define if OSSwapHostToBigInt64 and friends exist.])], [AC_MSG_WARN([Unable to find byte swapping functions; using built-in routines.])], - [[#include ]])], - [[#if defined(HAVE_ENDIAN_H) -#include -#elif defined(HAVE_SYS_ENDIAN_H) -#include -#endif]]) + [[#include ]])]) AC_CHECK_DECL([IP_MTU_DISCOVER], [AC_DEFINE([HAVE_IP_MTU_DISCOVER], [1], diff --git a/src/crypto/byteorder.h b/src/crypto/byteorder.h index a5f0a47..e5f9baa 100644 --- a/src/crypto/byteorder.h +++ b/src/crypto/byteorder.h @@ -35,13 +35,20 @@ #include "config.h" -#ifdef HAVE_HTOBE64 +#if HAVE_DECL_BE64TOH || HAVE_DECL_BETOH64 + # if defined(HAVE_ENDIAN_H) # include # elif defined(HAVE_SYS_ENDIAN_H) +# include # include # endif +#if !HAVE_DECL_BE64TOH && HAVE_DECL_BETOH64 +#define be64toh betoh64 +#define be16toh betoh16 +#endif + #elif HAVE_OSX_SWAP # include # define htobe64 OSSwapHostToBigInt64