commit 8fc15e4861b37f7799abde6b9d6ec63fdceb55da Author: Nick Mathewson nickm@torproject.org Date: Thu Jun 28 13:26:27 2018 -0400
Add ntohs and htons to lib/arch/bytes.h --- src/lib/arch/bytes.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/src/lib/arch/bytes.h b/src/lib/arch/bytes.h index dcd35ae4f..d3b53f8cd 100644 --- a/src/lib/arch/bytes.h +++ b/src/lib/arch/bytes.h @@ -87,6 +87,18 @@ set_uint64(void *cp, uint64_t v) }
#ifdef WORDS_BIGENDIAN +static inline uint16_t +tor_htons(uint32_t a) +{ + return a; +} + +static inline uint16_t +tor_ntohs(uint64_t a) +{ + return a; +} + static inline uint32_t tor_htonl(uint32_t a) { @@ -111,6 +123,21 @@ tor_ntohll(uint64_t a) return a; } #else +static inline uint16_t +tor_htons(uint16_t a) +{ + /* Our compilers will indeed recognize this as bswap. */ + return + ((a & 0x00ff) << 8) | + ((a & 0xff00) >> 8); +} + +static inline uint16_t +tor_ntohs(uint16_t a) +{ + return tor_htons(a); +} + static inline uint32_t tor_htonl(uint32_t a) {