BUILD: Fix the build on OSX (htonll/ntohll)

htonll and ntohll were defined in 5b4dd683cb but on osx they are already
defined in sys/_endian.h. So, we check if they are defined before
declaring them.

[wt: no backport needed]
This commit is contained in:
Joseph Lynch 2015-10-06 19:43:18 -07:00 committed by Willy Tarreau
parent 067ac9f4b6
commit ffaf30b689
1 changed files with 4 additions and 0 deletions

View File

@ -1004,6 +1004,7 @@ static inline unsigned char utf8_return_length(unsigned char code)
* the whole code is optimized out. In little endian, with a decent compiler,
* a few bswap and 2 shifts are left, which is the minimum acceptable.
*/
#ifndef htonll
static inline unsigned long long htonll(unsigned long long a)
{
union {
@ -1015,12 +1016,15 @@ static inline unsigned long long htonll(unsigned long long a)
} w = { .by64 = a };
return ((unsigned long long)htonl(w.by32.w1) << 32) | htonl(w.by32.w2);
}
#endif
/* Turns 64-bit value <a> from network byte order to host byte order. */
#ifndef ntohll
static inline unsigned long long ntohll(unsigned long long a)
{
return htonll(a);
}
#endif
/* returns a 64-bit a timestamp with the finest resolution available. The
* unit is intentionally not specified. It's mostly used to compare dates.