33#include <boost/thread.hpp>
34#include <boost/bind/bind.hpp>
40#undef MONERO_DEFAULT_LOG_CATEGORY
41#define MONERO_DEFAULT_LOG_CATEGORY "net.http"
46 template<
class t_child_
class,
class t_connection_context = epee::net_utils::connection_context_base>
59 bool init(std::function<
void(
size_t,
uint8_t*)> rng,
const std::string& bind_port =
"0",
const std::string& bind_ip =
"0.0.0.0",
60 const std::string& bind_ipv6_address =
"::",
bool use_ipv6 =
false,
bool require_ipv4 =
true,
61 std::vector<std::string> access_control_origins = std::vector<std::string>(),
62 boost::optional<net_utils::http::login> user = boost::none,
67 m_net_server.get_config_object().m_phandler =
static_cast<t_child_class*
>(
this);
74 std::sort(access_control_origins.begin(), access_control_origins.end());
75 m_net_server.get_config_object().m_access_control_origins = std::move(access_control_origins);
77 m_net_server.get_config_object().m_user = std::move(user);
79 MGINFO(
"Binding on " << bind_ip <<
" (IPv4):" << bind_port);
82 MGINFO(
"Binding on " << bind_ipv6_address <<
" (IPv6):" << bind_port);
84 bool res =
m_net_server.init_server(bind_port, bind_ip, bind_port, bind_ipv6_address, use_ipv6, require_ipv4, std::move(ssl_options));
87 LOG_ERROR(
"Failed to bind server");
93 bool run(
size_t threads_count,
bool wait =
true)
96 MINFO(
"Run net_service loop( " << threads_count <<
" threads)...");
99 LOG_ERROR(
"Failed to run net tcp server!");
103 MINFO(
"net_service loop stopped.");
the connection templated-class for one peer connection
Definition: http_server_impl_base.h:48
http_server_impl_base(boost::asio::io_service &external_io_service)
Definition: http_server_impl_base.h:55
bool send_stop_signal()
Definition: http_server_impl_base.h:117
long get_connections_count() const
Definition: http_server_impl_base.h:128
bool run(size_t threads_count, bool wait=true)
Definition: http_server_impl_base.h:93
bool init(std::function< void(size_t, uint8_t *)> rng, const std::string &bind_port="0", const std::string &bind_ip="0.0.0.0", const std::string &bind_ipv6_address="::", bool use_ipv6=false, bool require_ipv4=true, std::vector< std::string > access_control_origins=std::vector< std::string >(), boost::optional< net_utils::http::login > user=boost::none, net_utils::ssl_options_t ssl_options=net_utils::ssl_support_t::e_ssl_support_autodetect)
Definition: http_server_impl_base.h:59
int get_binded_port()
Definition: http_server_impl_base.h:123
bool timed_wait_server_stop(uint64_t ms)
Definition: http_server_impl_base.h:112
http_server_impl_base()
Definition: http_server_impl_base.h:51
net_utils::boosted_tcp_server< net_utils::http::http_custom_handler< t_connection_context > > m_net_server
Definition: http_server_impl_base.h:134
bool deinit()
Definition: http_server_impl_base.h:107
Definition: abstract_tcp_server2.h:324
const char * res
Definition: hmac_keccak.cpp:42
@ e_ssl_support_autodetect
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:40
unsigned char uint8_t
Definition: stdint.h:124
unsigned __int64 uint64_t
Definition: stdint.h:136
Definition: http_protocol_handler.h:153