mirror of https://github.com/oxen-io/lokinet
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
466 B
C++
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
|