aboutsummaryrefslogtreecommitdiff
path: root/libcmix-network/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcmix-network/server.cpp')
-rw-r--r--libcmix-network/server.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/libcmix-network/server.cpp b/libcmix-network/server.cpp
index 34e3183..195c5a0 100644
--- a/libcmix-network/server.cpp
+++ b/libcmix-network/server.cpp
@@ -45,10 +45,27 @@ Server::Server(io_service& io_service, const ListenSettings& listen_settings, Ac
Server::Server(io_service& io_service, const ListenSettings& listen_settings, std::shared_ptr<ssl::context> ctx, SSLAcceptHandler accept_handler)
: Server(io_service, listen_settings)
{
+ ctx->set_options(
+ boost::asio::ssl::context::default_workarounds
+ | boost::asio::ssl::context::no_sslv2
+ | boost::asio::ssl::context::single_dh_use
+ );
+
+ ctx->use_certificate_chain_file(listen_settings.cert);
+ ctx->use_private_key_file(listen_settings.key, boost::asio::ssl::context::pem);
+ ctx->use_tmp_dh_file(listen_settings.dhparam);
+ ctx->set_default_verify_paths();
+
if(v4_acceptor.is_open()) {
v4_acceptor.start_accepting(ctx, accept_handler);
}
if(v6_acceptor.is_open()) {
v6_acceptor.start_accepting(ctx, accept_handler);
}
+}
+
+void Server::close()
+{
+ v4_acceptor.close();
+ v6_acceptor.close();
} \ No newline at end of file