lokinet/llarp/net/ip.cpp
Thomas Winget 7caa87862e standardize include format and pragma once
All #ifndef guards on headers have been removed, I think,
in favor of #pragma once

Headers are now included as `#include "filename"` if the included file
resides in the same directory as the file including it, or any
subdirectory therein.  Otherwise they are included as
`#include <project/top/dir/relative/path/filename>`

The above does not include system/os headers.
2021-03-09 19:01:41 -05:00

29 lines
466 B
C++

#include "ip.hpp"
#include <cstring>
namespace llarp::net
{
huint128_t
In6ToHUInt(in6_addr addr)
{
uint8_t* ptr = reinterpret_cast<uint8_t*>(addr.s6_addr);
uint128_t x{0};
for (int i = 0; i < 16; i++)
{
x <<= 8;
x |= ptr[i];
}
return huint128_t{x};
}
in6_addr
HUIntToIn6(huint128_t x)
{
in6_addr addr;
auto i = ntoh128(x.h);
std::memcpy(&addr, &i, 16);
return addr;
}
} // namespace llarp::net