#pragma once #include #include #include #include #include #include #include #include "config.h" #include "server.h" namespace ssl = boost::asio::ssl; // from namespace HTTPS { static const ssl::context_base::method tls_method {ssl::context::tlsv13}; class Server: public ::Server { public: typedef std::unordered_map> ctx_type; private: ctx_type m_ctx; ssl::context m_ctx_dummy{tls_method}; // Initial use, will be replaced by host specific context (with specific certificate) public: Server(Config& config, boost::asio::io_context& ioc, const Socket& socket, plugins_container_type& plugins); virtual ~Server(); int start() override; }; }