[tor-commits] [tor/master] Add ntohs and htons to lib/arch/bytes.h

nickm at torproject.org nickm at torproject.org
Thu Jun 28 19:21:00 UTC 2018


commit 8fc15e4861b37f7799abde6b9d6ec63fdceb55da
Author: Nick Mathewson <nickm at 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)
 {





More information about the tor-commits mailing list