diff options
Diffstat (limited to 'src/Core/ConnectionManager.cpp')
-rw-r--r-- | src/Core/ConnectionManager.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Core/ConnectionManager.cpp b/src/Core/ConnectionManager.cpp index b1cfd40..a537539 100644 --- a/src/Core/ConnectionManager.cpp +++ b/src/Core/ConnectionManager.cpp @@ -18,6 +18,7 @@ */ #include "ConnectionManager.h" +#include "ConfigManager.h" #include "RequestHandler/CertificateRequestHandler.h" #include <Net/ServerConnection.h> #include <Net/Packet.h> @@ -51,12 +52,14 @@ void ConnectionManager::refreshPollfds() { } } -ConnectionManager::ConnectionManager(const std::vector<Net::IPAddress> &listenerAddresses) : requestManager(true) { +ConnectionManager::ConnectionManager(const ConfigManager& configManager) : requestManager(true) { requestManager.registerPacketType<RequestHandler::CertificateRequestHandler>(Net::Packet::TYPE_CERT_REQ); + const std::vector<Net::IPAddress> &listenerAddresses = configManager.getListenerAddresses(); + if(listenerAddresses.empty()) { try { - listeners.push_back(new Net::Listener()); + listeners.push_back(new Net::Listener(configManager.getX509CertFile(), configManager.getX509KeyFile())); } catch(Net::Exception &e) { // TODO: Log error @@ -65,7 +68,7 @@ ConnectionManager::ConnectionManager(const std::vector<Net::IPAddress> &listener else { for(std::vector<Net::IPAddress>::const_iterator address = listenerAddresses.begin(); address != listenerAddresses.end(); ++address) { try { - listeners.push_back(new Net::Listener(*address)); + listeners.push_back(new Net::Listener(configManager.getX509CertFile(), configManager.getX509KeyFile(), *address)); } catch(Net::Exception &e) { // TODO: Log error |