#include <folly/IPAddressV6.h>
#include <algorithm>
#include <ostream>
#include <string>
#include <fmt/core.h>
#include <folly/IPAddress.h>
#include <folly/IPAddressV4.h>
#include <folly/MacAddress.h>
#include <folly/ScopeGuard.h>
#include <folly/String.h>
#include <folly/detail/IPAddressSource.h>
#ifdef _WIN32
#include <iphlpapi.h>
#include <ntddndis.h>
#define IFNAMSIZ …
#else
#include <net/if.h>
#endif
ostream;
string;
namespace folly {
const uint32_t IPAddressV6::PREFIX_TEREDO = …;
const uint32_t IPAddressV6::PREFIX_6TO4 = …;
size_t hash_value(const IPAddressV6& addr) { … }
ostream& operator<<(ostream& os, const IPAddressV6& addr) { … }
void toAppend(IPAddressV6 addr, string* result) { … }
void toAppend(IPAddressV6 addr, fbstring* result) { … }
bool IPAddressV6::validate(StringPiece ip) noexcept { … }
IPAddressV6::IPAddressV6() = default;
IPAddressV6::IPAddressV6(StringPiece addr) { … }
Expected<IPAddressV6, IPAddressFormatError> IPAddressV6::tryFromString(
StringPiece str) noexcept { … }
IPAddressV6::IPAddressV6(const in6_addr& src) noexcept : … { … }
IPAddressV6::IPAddressV6(const sockaddr_in6& src) noexcept
: … { … }
IPAddressV6::IPAddressV6(const ByteArray16& src) noexcept : … { … }
IPAddressV6::IPAddressV6(LinkLocalTag, MacAddress mac) : … { … }
IPAddressV6::AddressStorage::AddressStorage(MacAddress mac) { … }
Optional<MacAddress> IPAddressV6::getMacAddressFromLinkLocal() const { … }
Optional<MacAddress> IPAddressV6::getMacAddressFromEUI64() const { … }
IPAddressV6 IPAddressV6::fromBinary(ByteRange bytes) { … }
Expected<IPAddressV6, IPAddressFormatError> IPAddressV6::tryFromBinary(
ByteRange bytes) noexcept { … }
Expected<Unit, IPAddressFormatError> IPAddressV6::trySetFromBinary(
ByteRange bytes) noexcept { … }
IPAddressV6 IPAddressV6::fromInverseArpaName(const std::string& arpaname) { … }
IPAddressV4 IPAddressV6::createIPv4() const { … }
static inline uint16_t unpack(uint8_t lobyte, uint8_t hibyte) { … }
static inline void unpackInto(
const unsigned char* src, uint16_t* dest, size_t count) { … }
IPAddressV4 IPAddressV6::getIPv4For6To4() const { … }
bool IPAddressV6::isIPv4Mapped() const { … }
IPAddressV6::Type IPAddressV6::type() const { … }
string IPAddressV6::toJson() const { … }
size_t IPAddressV6::hash() const { … }
bool IPAddressV6::inSubnet(StringPiece cidrNetwork) const { … }
bool IPAddressV6::inSubnetWithMask(
const IPAddressV6& subnet, const ByteArray16& cidrMask) const { … }
bool IPAddressV6::isLoopback() const { … }
bool IPAddressV6::isRoutable() const { … }
bool IPAddressV6::isLinkLocalBroadcast() const { … }
bool IPAddressV6::isPrivate() const { … }
bool IPAddressV6::isLinkLocal() const { … }
bool IPAddressV6::isMulticast() const { … }
uint8_t IPAddressV6::getMulticastFlags() const { … }
uint8_t IPAddressV6::getMulticastScope() const { … }
IPAddressV6 IPAddressV6::getSolicitedNodeAddress() const { … }
IPAddressV6 IPAddressV6::mask(size_t numBits) const { … }
string IPAddressV6::str() const { … }
string IPAddressV6::toFullyQualified() const { … }
void IPAddressV6::toFullyQualifiedAppend(std::string& out) const { … }
string IPAddressV6::toInverseArpaName() const { … }
uint8_t IPAddressV6::getNthMSByte(size_t byteIndex) const { … }
ByteArray16 IPAddressV6::fetchMask(size_t numBits) { … }
CIDRNetworkV6 IPAddressV6::longestCommonPrefix(
const CIDRNetworkV6& one, const CIDRNetworkV6& two) { … }
bool IPAddressV6::inBinarySubnet(
const std::array<uint8_t, 2> addr, size_t numBits) const { … }
}