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>
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());
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.");
const char * res
Definition: hmac_keccak.cpp:42
net_utils::boosted_tcp_server< net_utils::http::http_custom_handler< t_connection_context > > m_net_server
Definition: http_server_impl_base.h:134
Definition: abstract_tcp_server2.h:322
bool deinit()
Definition: http_server_impl_base.h:107
::std::string string
Definition: gtest-port.h:1097
unsigned char uint8_t
Definition: stdint.h:124
boost::asio::io_service io_service
Definition: levin.cpp:303
Definition: http_server_impl_base.h:47
int get_binded_port()
Definition: http_server_impl_base.h:123
Definition: http_protocol_handler.h:152
the connection templated-class for one peer connection
unsigned __int64 uint64_t
Definition: stdint.h:136
http_server_impl_base(boost::asio::io_service &external_io_service)
Definition: http_server_impl_base.h:55
bool run(size_t threads_count, bool wait=true)
Definition: http_server_impl_base.h:93
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
const T & move(const T &t)
Definition: gtest-port.h:1317
Definition: connection_basic.hpp:95
http_server_impl_base()
Definition: http_server_impl_base.h:51
long get_connections_count() const
Definition: http_server_impl_base.h:128
bool timed_wait_server_stop(uint64_t ms)
Definition: http_server_impl_base.h:112
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
bool send_stop_signal()
Definition: http_server_impl_base.h:117