[tor-commits] [tor/master] Add tor_htonll/ntohll functions

nickm at torproject.org nickm at torproject.org
Fri Jul 1 19:35:16 UTC 2016


commit 9744a40f7aa71f874b9f3eeb3c5e7d0899c8d409
Author: David Goulet <dgoulet at ev0ke.net>
Date:   Mon Jan 11 11:13:04 2016 +0100

    Add tor_htonll/ntohll functions
    
    Signed-off-by: David Goulet <dgoulet at ev0ke.net>
---
 src/common/util.c | 21 +++++++++++++++++++++
 src/common/util.h |  2 ++
 2 files changed, 23 insertions(+)

diff --git a/src/common/util.c b/src/common/util.c
index 4b6df81..3c5341d 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -5587,3 +5587,24 @@ clamp_double_to_int64(double number)
   return signbit(number) ? INT64_MIN : INT64_MAX;
 }
 
+/** Return a uint64_t value from <b>a</b> in network byte order. */
+uint64_t
+tor_htonll(uint64_t a)
+{
+#ifdef WORDS_BIGENDIAN
+  /* Big endian. */
+  return a;
+#else /* WORDS_BIGENDIAN */
+  /* Little endian. The worst... */
+  return htonl((uint32_t)(a>>32)) |
+    (((uint64_t)htonl((uint32_t)a))<<32);
+#endif /* WORDS_BIGENDIAN */
+}
+
+/** Return a uint64_t value from <b>a</b> in host byte order. */
+uint64_t
+tor_ntohll(uint64_t a)
+{
+  return tor_htonll(a);
+}
+
diff --git a/src/common/util.h b/src/common/util.h
index 7cb33dc..fdf1c03 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -61,6 +61,8 @@ void *tor_memdup_(const void *mem, size_t len DMALLOC_PARAMS)
 void *tor_memdup_nulterm_(const void *mem, size_t len DMALLOC_PARAMS)
   ATTR_MALLOC ATTR_NONNULL((1));
 void tor_free_(void *mem);
+uint64_t tor_htonll(uint64_t a);
+uint64_t tor_ntohll(uint64_t a);
 #ifdef USE_DMALLOC
 extern int dmalloc_free(const char *file, const int line, void *pnt,
                         const int func_id);





More information about the tor-commits mailing list