23 TCP(openvpn_io::io_context &io_context)
29 const size_t acceptor_index,
30 openvpn_io::io_context &io_context)
override
34 [listener =
ListenerBase::Ptr(listener), sock](
const openvpn_io::error_code &error)
mutable
35 { listener->handle_accept(std::move(sock), error); });
40#ifdef OPENVPN_DEBUG_ACCEPT
56 static_assert(
static_cast<int>(
FIRST) >
static_cast<int>(
SSLConst::LAST),
"TCP flags in conflict with SSL flags");
58#ifdef OPENVPN_PLATFORM_WIN
61 acceptor.set_option(openvpn_io::ip::tcp::acceptor::reuse_address(
true));
65 const int fd =
acceptor.native_handle();
67 SockOpt::reuseport(fd);
#define OPENVPN_LOG(args)
void set_cloexec(const int fd)
void reuseaddr(const int fd)
void async_accept(ListenerBase *listener, const size_t acceptor_index, openvpn_io::io_context &io_context) override
TCP(openvpn_io::io_context &io_context)
openvpn_io::ip::tcp::endpoint local_endpoint
openvpn_io::ip::tcp::acceptor acceptor
static unsigned int sockopt_flags(const unsigned int flags)
void set_socket_options(unsigned int flags)