Monero
Loading...
Searching...
No Matches
epee::net_utils Namespace Reference

Namespaces

namespace  http

Classes

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

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 class  address_type : std::uint8_t {
  invalid = 0 , ipv4 = 1 , ipv6 = 2 , i2p = 3 ,
  tor = 4
}
enum class  zone : std::uint8_t { invalid = 0 , public_ = 1 , i2p = 2 , tor = 3 }
enum class  ssl_support_t : uint8_t { e_ssl_support_disabled , e_ssl_support_enabled , e_ssl_support_autodetect }
enum class  ssl_verification_t : uint8_t { none = 0 , system_ca , user_certificates , 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".
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

typedef calculate_times_struct epee::net_utils::calculate_times_struct

◆ network_MB

◆ network_speed_bps

◆ network_speed_kbps

◆ network_time_seconds

Enumeration Type Documentation

◆ address_type

enum class epee::net_utils::address_type : std::uint8_t
strong
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

enum class epee::net_utils::zone : std::uint8_t
strong
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 ( ...)

◆ catch() [2/2]

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

◆ 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()

size_t epee::net_utils::get_ssl_magic_size ( )
constexpr

◆ 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()

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

◆ parse_uri()

◆ parse_uri_query()

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

◆ parse_url()

◆ 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.