|
| CAddress () |
|
| CAddress (CService ipIn, ServiceFlags nServicesIn) |
|
| CAddress (CService ipIn, ServiceFlags nServicesIn, NodeSeconds time) |
|
| SERIALIZE_METHODS (CAddress, obj) |
|
| CService () |
|
| CService (const CNetAddr &ip, uint16_t port) |
|
| CService (const struct in_addr &ipv4Addr, uint16_t port) |
|
| CService (const struct sockaddr_in &addr) |
|
uint16_t | GetPort () const |
|
bool | GetSockAddr (struct sockaddr *paddr, socklen_t *addrlen) const |
| Obtain the IPv4/6 socket address this represents. More...
|
|
bool | SetSockAddr (const struct sockaddr *paddr) |
|
sa_family_t | GetSAFamily () const |
| Get the address family. More...
|
|
std::vector< unsigned char > | GetKey () const |
|
std::string | ToStringAddrPort () const |
|
| CService (const struct in6_addr &ipv6Addr, uint16_t port) |
|
| CService (const struct sockaddr_in6 &addr) |
|
| SERIALIZE_METHODS (CService, obj) |
|
| CNetAddr () |
| Construct an unspecified IPv6 network address (::/128). More...
|
|
| CNetAddr (const struct in_addr &ipv4Addr) |
|
void | SetIP (const CNetAddr &ip) |
|
void | SetLegacyIPv6 (Span< const uint8_t > ipv6) |
| Set from a legacy IPv6 address. More...
|
|
bool | SetInternal (const std::string &name) |
| Create an "internal" address that represents a name or FQDN. More...
|
|
bool | SetSpecial (const std::string &addr) |
| Parse a Tor or I2P address and set this object to it. More...
|
|
bool | IsBindAny () const |
|
bool | IsIPv4 () const |
|
bool | IsIPv6 () const |
|
bool | IsRFC1918 () const |
|
bool | IsRFC2544 () const |
|
bool | IsRFC6598 () const |
|
bool | IsRFC5737 () const |
|
bool | IsRFC3849 () const |
|
bool | IsRFC3927 () const |
|
bool | IsRFC3964 () const |
|
bool | IsRFC4193 () const |
|
bool | IsRFC4380 () const |
|
bool | IsRFC4843 () const |
|
bool | IsRFC7343 () const |
|
bool | IsRFC4862 () const |
|
bool | IsRFC6052 () const |
|
bool | IsRFC6145 () const |
|
bool | IsHeNet () const |
|
bool | IsTor () const |
|
bool | IsI2P () const |
|
bool | IsCJDNS () const |
|
bool | HasCJDNSPrefix () const |
|
bool | IsLocal () const |
|
bool | IsRoutable () const |
|
bool | IsInternal () const |
|
bool | IsValid () const |
|
bool | IsPrivacyNet () const |
| Whether this object is a privacy network. More...
|
|
bool | IsAddrV1Compatible () const |
| Check if the current object can be serialized in pre-ADDRv2/BIP155 format. More...
|
|
enum Network | GetNetwork () const |
|
std::string | ToStringAddr () const |
|
bool | GetInAddr (struct in_addr *pipv4Addr) const |
| Try to get our IPv4 address. More...
|
|
Network | GetNetClass () const |
|
uint32_t | GetLinkedIPv4 () const |
| For IPv4, mapped IPv4, SIIT translated IPv4, Teredo, 6to4 tunneled addresses, return the relevant IPv4 address as a uint32. More...
|
|
bool | HasLinkedIPv4 () const |
| Whether this address has a linked IPv4 address (see GetLinkedIPv4()). More...
|
|
std::vector< unsigned char > | GetAddrBytes () const |
|
int | GetReachabilityFrom (const CNetAddr &paddrPartner) const |
| Calculates a metric for how reachable (*this) is from a given partner. More...
|
|
| CNetAddr (const struct in6_addr &pipv6Addr, const uint32_t scope=0) |
|
bool | GetIn6Addr (struct in6_addr *pipv6Addr) const |
| Try to get our IPv6 (or CJDNS) address. More...
|
|
bool | IsRelayable () const |
| Whether this address should be relayed to other peers even if we can't reach it ourselves. More...
|
|
template<typename Stream > |
void | Serialize (Stream &s) const |
| Serialize to a stream. More...
|
|
template<typename Stream > |
void | Unserialize (Stream &s) |
| Unserialize from a stream. More...
|
|
|
static constexpr std::chrono::seconds | TIME_INIT {100000000} |
|
static constexpr uint32_t | DISK_VERSION_INIT {220000} |
| Historically, CAddress disk serialization stored the CLIENT_VERSION, optionally OR'ed with the ADDRV2_FORMAT flag to indicate V2 serialization. More...
|
|
static constexpr uint32_t | DISK_VERSION_IGNORE_MASK {0b00000000'00000111'11111111'11111111} |
|
static constexpr uint32_t | DISK_VERSION_ADDRV2 {1 << 29} |
| The version number written in disk serialized addresses to indicate V2 serializations. More...
|
|
A CService with information about it as peer.
Definition at line 366 of file protocol.h.
constexpr uint32_t CAddress::DISK_VERSION_INIT {220000} |
|
staticconstexprprivate |
Historically, CAddress disk serialization stored the CLIENT_VERSION, optionally OR'ed with the ADDRV2_FORMAT flag to indicate V2 serialization.
The first field has since been disentangled from client versioning, and now instead:
- The low bits (masked by DISK_VERSION_IGNORE_MASK) store the fixed value DISK_VERSION_INIT, (in case any code exists that treats it as a client version) but are ignored on deserialization.
- The high bits (masked by ~DISK_VERSION_IGNORE_MASK) store actual serialization information. Only 0 or DISK_VERSION_ADDRV2 (equal to the historical ADDRV2_FORMAT) are valid now, and any other value triggers a deserialization failure. Other values can be added later if needed.
For disk deserialization, ADDRV2_FORMAT in the stream version signals that ADDRV2 deserialization is permitted, but the actual format is determined by the high bits in the stored version field. For network serialization, the stream version having ADDRV2_FORMAT or not determines the actual format used (as it has no embedded version number).
Definition at line 386 of file protocol.h.