X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flibcollectdclient%2Fnetwork_parse.c;h=49b1a007b8920f079b8afcf0f7ef8788e905dcea;hb=3f24dce20ad6ea1b2ed11780f9423e8675885539;hp=04de8c043abf51d076aa45eeefac8021e982585e;hpb=7b8851b26928b609ce850e78c1eabb50ff319244;p=collectd.git diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c index 04de8c04..49b1a007 100644 --- a/src/libcollectdclient/network_parse.c +++ b/src/libcollectdclient/network_parse.c @@ -44,6 +44,23 @@ #include #elif HAVE_SYS_ENDIAN_H #include +#else /* fallback */ +__attribute__((const)) static uint16_t be16toh(uint16_t n) { + uint8_t tmp[2]; + memmove(tmp, &n, sizeof(tmp)); + + return ((uint16_t)tmp[0] << 8) | ((uint16_t)tmp[1] << 0); +} + +__attribute__((const)) static uint64_t be64toh(uint64_t n) { + uint8_t tmp[8]; + memmove(tmp, &n, sizeof(tmp)); + + return ((uint64_t)tmp[0] << 56) | ((uint64_t)tmp[1] << 48) | + ((uint64_t)tmp[2] << 40) | ((uint64_t)tmp[3] << 32) | + ((uint64_t)tmp[4] << 24) | ((uint64_t)tmp[5] << 16) | + ((uint64_t)tmp[6] << 8) | ((uint64_t)tmp[7] << 0); +} #endif #if HAVE_GCRYPT_H