Monero
Namespaces | Classes | Typedefs | Enumerations | Functions
epee::net_utils Namespace Reference

Namespaces

 http
 

Classes

class  blocked_mode_client
 
class  boosted_tcp_server
 
class  buffer
 
struct  calculate_times_struct
 
class  connection
 Represents a single connection from a client. More...
 
class  connection_basic
 
class  connection_basic_pimpl
 
class  connection_basic_shared_state
 
struct  connection_context_base
 
struct  direct_connect
 
class  do_nothing_sub_handler
 
struct  i_connection_filter
 
struct  i_connection_limit
 
class  i_network_throttle
 
struct  i_service_endpoint
 
struct  i_sub_handler
 
struct  i_target_handler
 
class  ipv4_network_address
 
class  ipv4_network_subnet
 
class  ipv6_network_address
 
class  network_address
 
class  network_throttle
 
struct  network_throttle_bw
 
class  network_throttle_manager
 
struct  ssl_authentication_t
 
class  ssl_options_t
 

Typedefs

typedef double network_speed_kbps
 
typedef double network_speed_bps
 
typedef double network_time_seconds
 
typedef double network_MB
 
typedef calculate_times_struct calculate_times_struct
 

Enumerations

enum  t_connection_type { e_connection_type_NET = 0, e_connection_type_RPC = 1, e_connection_type_P2P = 2 }
 
enum  address_type : std::uint8_t {
  address_type::invalid = 0, address_type::ipv4 = 1, address_type::ipv6 = 2, address_type::i2p = 3,
  address_type::tor = 4
}
 
enum  zone : std::uint8_t { zone::invalid = 0, zone::public_ = 1, zone::i2p = 2, zone::tor = 3 }
 
enum  ssl_support_t : uint8_t { ssl_support_t::e_ssl_support_disabled, ssl_support_t::e_ssl_support_enabled, ssl_support_t::e_ssl_support_autodetect }
 
enum  ssl_verification_t : uint8_t { ssl_verification_t::none = 0, ssl_verification_t::system_ca, ssl_verification_t::user_certificates, ssl_verification_t::user_ca }
 

Functions

const char * get_hex_vals ()
 
const char * get_unsave_chars ()
 
bool is_unsafe (unsigned char compare_char)
 
std::string dec_to_hex (char num, int radix)
 
int get_index (const char *s, char c)
 
std::string hex_to_dec_2bytes (const char *s)
 
std::string convert (char val)
 
std::string conver_to_url_format (const std::string &uri)
 
std::string convert_from_url_format (const std::string &uri)
 
std::string convert_to_url_format_force_all (const std::string &uri)
 
template<typename T >
Tcheck_and_get (std::shared_ptr< T > &ptr)
 
 catch (const std::exception &e)
 
 catch (...)
 
std::string to_string (t_connection_type type)
 
const char * zone_to_string (zone value) noexcept
 
zone zone_from_string (boost::string_ref value) noexcept
 
bool is_ip_local (uint32_t ip)
 
bool is_ip_loopback (uint32_t ip)
 
bool parse_uri (const std::string uri, http::uri_content &content)
 
bool parse_url_ipv6 (const std::string url_str, http::url_content &content)
 
bool parse_url (const std::string url_str, http::url_content &content)
 
constexpr size_t get_ssl_magic_size ()
 
bool is_ssl (const unsigned char *data, size_t len)
 
bool ssl_support_from_string (ssl_support_t &ssl, boost::string_ref s)
 
bool create_ec_ssl_certificate (EVP_PKEY *&pkey, X509 *&cert)
 
bool create_rsa_ssl_certificate (EVP_PKEY *&pkey, X509 *&cert)
 
boost::system::error_code store_ssl_keys (boost::asio::ssl::context &ssl, const boost::filesystem::path &base)
 Store private key for ssl at base + ".key" unencrypted and certificate for ssl at base + ".crt". More...
 
bool operator== (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator!= (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator< (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator<= (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator> (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator>= (const ipv4_network_address &lhs, const ipv4_network_address &rhs) noexcept
 
bool operator== (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator!= (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator< (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator<= (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator> (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator>= (const ipv4_network_subnet &lhs, const ipv4_network_subnet &rhs) noexcept
 
bool operator== (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator!= (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator< (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator<= (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator> (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator>= (const ipv6_network_address &lhs, const ipv6_network_address &rhs) noexcept
 
bool operator== (const network_address &lhs, const network_address &rhs)
 
bool operator!= (const network_address &lhs, const network_address &rhs)
 
bool operator< (const network_address &lhs, const network_address &rhs)
 
bool operator<= (const network_address &lhs, const network_address &rhs)
 
bool operator> (const network_address &lhs, const network_address &rhs)
 
bool operator>= (const network_address &lhs, const network_address &rhs)
 
std::string print_connection_context (const connection_context_base &ctx)
 
std::string print_connection_context_short (const connection_context_base &ctx)
 
 MAKE_LOGGABLE (connection_context_base, ct, os)
 
template<class t_request , class t_response , class t_transport >
bool invoke_http_json (const boost::string_ref uri, const t_request &out_struct, t_response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref method="POST")
 
template<class t_request , class t_response , class t_transport >
bool invoke_http_bin (const boost::string_ref uri, const t_request &out_struct, t_response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref method="POST")
 
template<class t_request , class t_response , class t_transport >
bool invoke_http_json_rpc (const boost::string_ref uri, std::string method_name, const t_request &out_struct, t_response &result_struct, epee::json_rpc::error &error_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST", const std::string &req_id="0")
 
template<class t_request , class t_response , class t_transport >
bool invoke_http_json_rpc (const boost::string_ref uri, std::string method_name, const t_request &out_struct, t_response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST", const std::string &req_id="0")
 
template<class t_command , class t_transport >
bool invoke_http_json_rpc (const boost::string_ref uri, typename t_command::request &out_struct, typename t_command::response &result_struct, t_transport &transport, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST", const std::string &req_id="0")
 
template<class t_arg , class t_result , class t_transport >
bool invoke_remote_command2 (const epee::net_utils::connection_context_base context, int command, const t_arg &out_struct, t_result &result_struct, t_transport &transport)
 
template<class t_result , class t_arg , class callback_t , class t_transport >
bool async_invoke_remote_command2 (const epee::net_utils::connection_context_base &context, int command, const t_arg &out_struct, t_transport &transport, const callback_t &cb, size_t inv_timeout=LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED)
 
template<class t_arg , class t_transport >
bool notify_remote_command2 (const typename t_transport::connection_context &context, int command, const t_arg &out_struct, t_transport &transport)
 
template<class t_owner , class t_in_type , class t_out_type , class t_context , class callback_t >
int buff_to_t_adapter (int command, const epee::span< const uint8_t > in_buff, byte_stream &buff_out, callback_t cb, t_context &context)
 
template<class t_owner , class t_in_type , class t_context , class callback_t >
int buff_to_t_adapter (t_owner *powner, int command, const epee::span< const uint8_t > in_buff, callback_t cb, t_context &context)
 
static bool parse_uri_query (const std::string &query, std::list< std::pair< std::string, std::string > > &params)
 
static bool parse_port (const std::string &port_str, uint64_t &out_port)
 
bool create_ec_ssl_certificate (EVP_PKEY *&pkey, X509 *&cert, int type)
 

Typedef Documentation

◆ calculate_times_struct

◆ network_MB

◆ network_speed_bps

◆ network_speed_kbps

◆ network_time_seconds

Enumeration Type Documentation

◆ address_type

Enumerator
invalid 
ipv4 
ipv6 
i2p 
tor 

◆ ssl_support_t

Enumerator
e_ssl_support_disabled 
e_ssl_support_enabled 
e_ssl_support_autodetect 

◆ ssl_verification_t

Enumerator
none 

Do not verify peer.

system_ca 

Verify peer via system ca only (do not inspect user certificates)

user_certificates 

Verify peer via specific (non-chain) certificate(s) only.

user_ca 

Verify peer via specific (possibly chain) certificate(s) only.

◆ t_connection_type

Enumerator
e_connection_type_NET 
e_connection_type_RPC 
e_connection_type_P2P 

◆ zone

Enumerator
invalid 
public_ 
i2p 
tor 

Function Documentation

◆ async_invoke_remote_command2()

template<class t_result , class t_arg , class callback_t , class t_transport >
bool epee::net_utils::async_invoke_remote_command2 ( const epee::net_utils::connection_context_base context,
int  command,
const t_arg &  out_struct,
t_transport &  transport,
const callback_t &  cb,
size_t  inv_timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED 
)

◆ buff_to_t_adapter() [1/2]

template<class t_owner , class t_in_type , class t_out_type , class t_context , class callback_t >
int epee::net_utils::buff_to_t_adapter ( int  command,
const epee::span< const uint8_t in_buff,
byte_stream buff_out,
callback_t  cb,
t_context &  context 
)

◆ buff_to_t_adapter() [2/2]

template<class t_owner , class t_in_type , class t_context , class callback_t >
int epee::net_utils::buff_to_t_adapter ( t_owner *  powner,
int  command,
const epee::span< const uint8_t in_buff,
callback_t  cb,
t_context &  context 
)

◆ catch() [1/2]

epee::net_utils::catch ( const std::exception &  e)

◆ catch() [2/2]

epee::net_utils::catch (   ...)

◆ check_and_get()

template<typename T >
T& epee::net_utils::check_and_get ( std::shared_ptr< T > &  ptr)

◆ conver_to_url_format()

std::string epee::net_utils::conver_to_url_format ( const std::string &  uri)

◆ convert()

std::string epee::net_utils::convert ( char  val)

◆ convert_from_url_format()

std::string epee::net_utils::convert_from_url_format ( const std::string &  uri)

◆ convert_to_url_format_force_all()

std::string epee::net_utils::convert_to_url_format_force_all ( const std::string &  uri)

◆ create_ec_ssl_certificate() [1/2]

bool epee::net_utils::create_ec_ssl_certificate ( EVP_PKEY *&  pkey,
X509 *&  cert 
)

◆ create_ec_ssl_certificate() [2/2]

bool epee::net_utils::create_ec_ssl_certificate ( EVP_PKEY *&  pkey,
X509 *&  cert,
int  type 
)

◆ create_rsa_ssl_certificate()

bool epee::net_utils::create_rsa_ssl_certificate ( EVP_PKEY *&  pkey,
X509 *&  cert 
)

◆ dec_to_hex()

std::string epee::net_utils::dec_to_hex ( char  num,
int  radix 
)

◆ get_hex_vals()

const char* epee::net_utils::get_hex_vals ( )
inline

◆ get_index()

int epee::net_utils::get_index ( const char *  s,
char  c 
)

◆ get_ssl_magic_size()

constexpr size_t epee::net_utils::get_ssl_magic_size ( )

◆ get_unsave_chars()

const char* epee::net_utils::get_unsave_chars ( )
inline

◆ hex_to_dec_2bytes()

std::string epee::net_utils::hex_to_dec_2bytes ( const char *  s)

◆ invoke_http_bin()

template<class t_request , class t_response , class t_transport >
bool epee::net_utils::invoke_http_bin ( const boost::string_ref  uri,
const t_request &  out_struct,
t_response &  result_struct,
t_transport &  transport,
std::chrono::milliseconds  timeout = std::chrono::seconds(15),
const boost::string_ref  method = "POST" 
)

◆ invoke_http_json()

template<class t_request , class t_response , class t_transport >
bool epee::net_utils::invoke_http_json ( const boost::string_ref  uri,
const t_request &  out_struct,
t_response &  result_struct,
t_transport &  transport,
std::chrono::milliseconds  timeout = std::chrono::seconds(15),
const boost::string_ref  method = "POST" 
)

◆ invoke_http_json_rpc() [1/3]

template<class t_request , class t_response , class t_transport >
bool epee::net_utils::invoke_http_json_rpc ( const boost::string_ref  uri,
std::string  method_name,
const t_request &  out_struct,
t_response &  result_struct,
epee::json_rpc::error error_struct,
t_transport &  transport,
std::chrono::milliseconds  timeout = std::chrono::seconds(15),
const boost::string_ref  http_method = "POST",
const std::string &  req_id = "0" 
)

◆ invoke_http_json_rpc() [2/3]

template<class t_request , class t_response , class t_transport >
bool epee::net_utils::invoke_http_json_rpc ( const boost::string_ref  uri,
std::string  method_name,
const t_request &  out_struct,
t_response &  result_struct,
t_transport &  transport,
std::chrono::milliseconds  timeout = std::chrono::seconds(15),
const boost::string_ref  http_method = "POST",
const std::string &  req_id = "0" 
)

◆ invoke_http_json_rpc() [3/3]

template<class t_command , class t_transport >
bool epee::net_utils::invoke_http_json_rpc ( const boost::string_ref  uri,
typename t_command::request &  out_struct,
typename t_command::response &  result_struct,
t_transport &  transport,
std::chrono::milliseconds  timeout = std::chrono::seconds(15),
const boost::string_ref  http_method = "POST",
const std::string &  req_id = "0" 
)

◆ invoke_remote_command2()

template<class t_arg , class t_result , class t_transport >
bool epee::net_utils::invoke_remote_command2 ( const epee::net_utils::connection_context_base  context,
int  command,
const t_arg &  out_struct,
t_result &  result_struct,
t_transport &  transport 
)

◆ is_ip_local()

bool epee::net_utils::is_ip_local ( uint32_t  ip)
inline

◆ is_ip_loopback()

bool epee::net_utils::is_ip_loopback ( uint32_t  ip)
inline

◆ is_ssl()

bool epee::net_utils::is_ssl ( const unsigned char *  data,
size_t  len 
)

◆ is_unsafe()

bool epee::net_utils::is_unsafe ( unsigned char  compare_char)

◆ MAKE_LOGGABLE()

epee::net_utils::MAKE_LOGGABLE ( connection_context_base  ,
ct  ,
os   
)
inline

◆ notify_remote_command2()

template<class t_arg , class t_transport >
bool epee::net_utils::notify_remote_command2 ( const typename t_transport::connection_context &  context,
int  command,
const t_arg &  out_struct,
t_transport &  transport 
)

◆ operator!=() [1/4]

bool epee::net_utils::operator!= ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator!=() [2/4]

bool epee::net_utils::operator!= ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator!=() [3/4]

bool epee::net_utils::operator!= ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator!=() [4/4]

bool epee::net_utils::operator!= ( const network_address lhs,
const network_address rhs 
)
inline

◆ operator<() [1/4]

bool epee::net_utils::operator< ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator<() [2/4]

bool epee::net_utils::operator< ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator<() [3/4]

bool epee::net_utils::operator< ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator<() [4/4]

bool epee::net_utils::operator< ( const network_address lhs,
const network_address rhs 
)
inline

◆ operator<=() [1/4]

bool epee::net_utils::operator<= ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator<=() [2/4]

bool epee::net_utils::operator<= ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator<=() [3/4]

bool epee::net_utils::operator<= ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator<=() [4/4]

bool epee::net_utils::operator<= ( const network_address lhs,
const network_address rhs 
)
inline

◆ operator==() [1/4]

bool epee::net_utils::operator== ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator==() [2/4]

bool epee::net_utils::operator== ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator==() [3/4]

bool epee::net_utils::operator== ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator==() [4/4]

bool epee::net_utils::operator== ( const network_address lhs,
const network_address rhs 
)
inline

◆ operator>() [1/4]

bool epee::net_utils::operator> ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator>() [2/4]

bool epee::net_utils::operator> ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator>() [3/4]

bool epee::net_utils::operator> ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator>() [4/4]

bool epee::net_utils::operator> ( const network_address lhs,
const network_address rhs 
)
inline

◆ operator>=() [1/4]

bool epee::net_utils::operator>= ( const ipv4_network_address lhs,
const ipv4_network_address rhs 
)
inlinenoexcept

◆ operator>=() [2/4]

bool epee::net_utils::operator>= ( const ipv4_network_subnet lhs,
const ipv4_network_subnet rhs 
)
inlinenoexcept

◆ operator>=() [3/4]

bool epee::net_utils::operator>= ( const ipv6_network_address lhs,
const ipv6_network_address rhs 
)
inlinenoexcept

◆ operator>=() [4/4]

bool epee::net_utils::operator>= ( const network_address lhs,
const network_address rhs 
)
inline

◆ parse_port()

static bool epee::net_utils::parse_port ( const std::string &  port_str,
uint64_t out_port 
)
static

◆ parse_uri()

bool epee::net_utils::parse_uri ( const std::string  uri,
http::uri_content content 
)

◆ parse_uri_query()

static bool epee::net_utils::parse_uri_query ( const std::string &  query,
std::list< std::pair< std::string, std::string > > &  params 
)
static

◆ parse_url()

bool epee::net_utils::parse_url ( const std::string  url_str,
http::url_content content 
)

◆ parse_url_ipv6()

bool epee::net_utils::parse_url_ipv6 ( const std::string  url_str,
http::url_content content 
)

◆ print_connection_context()

std::string epee::net_utils::print_connection_context ( const connection_context_base ctx)

◆ print_connection_context_short()

std::string epee::net_utils::print_connection_context_short ( const connection_context_base ctx)

◆ ssl_support_from_string()

bool epee::net_utils::ssl_support_from_string ( ssl_support_t ssl,
boost::string_ref  s 
)

◆ store_ssl_keys()

boost::system::error_code epee::net_utils::store_ssl_keys ( boost::asio::ssl::context &  ssl,
const boost::filesystem::path &  base 
)

Store private key for ssl at base + ".key" unencrypted and certificate for ssl at base + ".crt".

◆ to_string()

std::string epee::net_utils::to_string ( t_connection_type  type)

◆ zone_from_string()

zone epee::net_utils::zone_from_string ( boost::string_ref  value)
noexcept
Returns
zone enum of value or zone::invalid on error.

◆ zone_to_string()

const char * epee::net_utils::zone_to_string ( zone  value)
noexcept
Returns
String name of zone or "invalid" on error.