#include "acceptor.hpp" #include "accept.hpp" #include using namespace boost::asio; using namespace boost::asio::ip; Acceptor::Acceptor(boost::asio::io_service &io_service, boost::asio::ip::address address, uint16_t port) : acceptor(io_service) , endpoint(address, port) {} address Acceptor::get_address() { return endpoint.address(); } bool Acceptor::is_open() { return acceptor.is_open(); } void Acceptor::listen_v6_and_v4_any() { acceptor.open(endpoint.protocol()); v6_only v6(false); acceptor.set_option(v6); boost::asio::socket_base::reuse_address reuse(true); acceptor.set_option(reuse); acceptor.bind(endpoint); acceptor.listen(); } void Acceptor::listen_socket() { acceptor.open(endpoint.protocol()); boost::asio::socket_base::reuse_address reuse(true); acceptor.set_option(reuse); acceptor.bind(endpoint); acceptor.listen(); } void Acceptor::start_accepting(AcceptHandler accept_handler) { accept_loop(acceptor, accept_handler); } void Acceptor::start_accepting(std::shared_ptr ctx, SSLAcceptHandler accept_handler) { accept_loop(acceptor, ctx, accept_handler); } void Acceptor::close() { acceptor.close(); }