#pragma once #include #include #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; public: Server(Config& config, boost::asio::io_context& ioc, const Socket& socket, plugins_container_type& plugins, Statistics& statistics); virtual ~Server(); void load_certificates(); int start() override; }; }