diff options
Diffstat (limited to 'src/Net/Packet.cpp')
-rw-r--r-- | src/Net/Packet.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/Net/Packet.cpp b/src/Net/Packet.cpp index 9e05f24..976fd65 100644 --- a/src/Net/Packet.cpp +++ b/src/Net/Packet.cpp @@ -46,5 +46,29 @@ Packet& Packet::operator=(const Packet &p) { return *this; } + +uint64_t Packet::htonll(uint64_t val) { + union { + uint32_t u32[2]; + uint64_t u64; + } ret; + + ret.u32[0] = htonl(val >> 32); + ret.u32[1] = htonl(val); + + return ret.u64; +} + +uint64_t Packet::ntohll(uint64_t val) { + union { + uint32_t u32[2]; + uint64_t u64; + } v; + + v.u64 = val; + + return (((uint64_t)ntohl(v.u32[0])) << 32) | ntohl(v.u32[1]); +} + } } |