Monero
Namespaces | Classes | Enumerations | Functions
net Namespace Reference

Namespaces

 dandelionpp
 
 dnssec
 
 http
 
 socks
 
 zmq
 

Classes

class  i2p_address
 b32 i2p address; internal format not condensed/decoded. More...
 
class  tor_address
 Tor onion address; internal format not condensed/decoded. More...
 

Enumerations

enum  error : int {
  error::bogus_dnssec = 1, error::dns_query_failure, error::expected_tld, error::invalid_host,
  error::invalid_i2p_address, error::invalid_mask, error::invalid_port, error::invalid_tor_address,
  error::unsupported_address
}
 General net errors. More...
 

Functions

std::error_category consterror_category () noexcept
 
std::error_code make_error_code (error value) noexcept
 
bool operator== (const i2p_address &lhs, const i2p_address &rhs) noexcept
 
bool operator!= (const i2p_address &lhs, const i2p_address &rhs) noexcept
 
bool operator< (const i2p_address &lhs, const i2p_address &rhs) noexcept
 
void get_network_address_host_and_port (const std::string &address, std::string &host, std::string &port)
 Takes a valid address string (IP, Tor, I2P, or DNS name) and splits it into host and port. More...
 
expect< epee::net_utils::network_addressget_network_address (const boost::string_ref address, const std::uint16_t default_port)
 
expect< epee::net_utils::ipv4_network_subnetget_ipv4_subnet_address (const boost::string_ref address, bool allow_implicit_32)
 
expect< boost::asio::ip::tcp::endpoint > get_tcp_endpoint (const boost::string_ref address)
 
bool operator== (const tor_address &lhs, const tor_address &rhs) noexcept
 
bool operator!= (const tor_address &lhs, const tor_address &rhs) noexcept
 
bool operator< (const tor_address &lhs, const tor_address &rhs) noexcept
 

Enumeration Type Documentation

◆ error

enum net::error : int
strong

General net errors.

Enumerator
bogus_dnssec 

Invalid response signature from DNSSEC enabled domain.

dns_query_failure 

Failed to retrieve desired DNS record.

expected_tld 

Expected a tld.

invalid_host 

Hostname is not valid.

invalid_i2p_address 
invalid_mask 

Outside of 0-32 range.

invalid_port 

Outside of 0-65535 range.

invalid_tor_address 

Invalid base32 or length.

unsupported_address 

Type not supported by get_network_address

Function Documentation

◆ error_category()

std::error_category const & net::error_category ( )
noexcept
Returns
std::error_category for net namespace.

◆ get_ipv4_subnet_address()

expect< epee::net_utils::ipv4_network_subnet > net::get_ipv4_subnet_address ( boost::string_ref  address,
bool  allow_implicit_32 = false 
)

Identifies an IPv4 subnet in CIDR notatioa and returns it as a generic network_address. If the type is unsupported, it might be a hostname, and error() == net::error::kUnsupportedAddress is returned.

Parameters
addressAn ipv4 address.
allow_implicit_32whether to accept "raw" IPv4 addresses, with CIDR notation
Returns
A tor or IPv4 address, else error.

◆ get_network_address()

expect< epee::net_utils::network_address > net::get_network_address ( boost::string_ref  address,
std::uint16_t  default_port 
)

Identifies onion, i2p and IPv4 addresses and returns them as a generic network_address. If the type is unsupported, it might be a hostname, and error() == net::error::kUnsupportedAddress is returned.

Parameters
addressAn onion address, i2p address, ipv4 address or hostname. Hostname will return an error.
default_portIf address does not specify a port, this value will be used.
Returns
A tor or IPv4 address, else error.

◆ get_network_address_host_and_port()

void net::get_network_address_host_and_port ( const std::string &  address,
std::string &  host,
std::string &  port 
)

Takes a valid address string (IP, Tor, I2P, or DNS name) and splits it into host and port.

The host of an IPv6 addresses in the format "[x:x:..:x]:port" will have the braces stripped. For example, when the address is "[ffff::2023]", host will be set to "ffff::2023".

Parameters
addressThe address string one wants to split
[out]hostThe host part of the address string. Is always set.
[out]portThe port part of the address string. Is only set when address string contains a port.

◆ get_tcp_endpoint()

expect< boost::asio::ip::tcp::endpoint > net::get_tcp_endpoint ( const boost::string_ref  address)

◆ make_error_code()

std::error_code net::make_error_code ( error  value)
inlinenoexcept
Returns
net::error as a std::error_code value.

◆ operator!=() [1/2]

bool net::operator!= ( const i2p_address lhs,
const i2p_address rhs 
)
inlinenoexcept

◆ operator!=() [2/2]

bool net::operator!= ( const tor_address lhs,
const tor_address rhs 
)
inlinenoexcept

◆ operator<() [1/2]

bool net::operator< ( const i2p_address lhs,
const i2p_address rhs 
)
inlinenoexcept

◆ operator<() [2/2]

bool net::operator< ( const tor_address lhs,
const tor_address rhs 
)
inlinenoexcept

◆ operator==() [1/2]

bool net::operator== ( const i2p_address lhs,
const i2p_address rhs 
)
inlinenoexcept

◆ operator==() [2/2]

bool net::operator== ( const tor_address lhs,
const tor_address rhs 
)
inlinenoexcept