From 7a592121b8a8404e431c4bb0f485f6bbde0db77f Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Mon, 20 Oct 2008 18:00:05 +0000 Subject: Remove default location for certificate database. Some extra checking in loading ssl libraries. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706349 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/sys/SslPlugin.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'cpp/src/qpid/sys/SslPlugin.cpp') diff --git a/cpp/src/qpid/sys/SslPlugin.cpp b/cpp/src/qpid/sys/SslPlugin.cpp index ee272830e1..c519f5dc80 100644 --- a/cpp/src/qpid/sys/SslPlugin.cpp +++ b/cpp/src/qpid/sys/SslPlugin.cpp @@ -89,13 +89,21 @@ static struct SslPlugin : public Plugin { broker::Broker* broker = dynamic_cast(&target); // Only provide to a Broker if (broker) { - ssl::initNSS(options, true); - - const broker::Broker::Options& opts = broker->getOptions(); - ProtocolFactory::shared_ptr protocol(new SslProtocolFactory(options, - opts.connectionBacklog, opts.tcpNoDelay)); - QPID_LOG(info, "Listening for SSL connections on TCP port " << protocol->getPort()); - broker->registerProtocolFactory("ssl", protocol); + if (options.certDbPath.empty()) { + QPID_LOG(warning, "SSL plugin not enabled, you must set --qpid-ssl-cert-db to enable it."); + } else { + try { + ssl::initNSS(options, true); + + const broker::Broker::Options& opts = broker->getOptions(); + ProtocolFactory::shared_ptr protocol(new SslProtocolFactory(options, + opts.connectionBacklog, opts.tcpNoDelay)); + QPID_LOG(info, "Listening for SSL connections on TCP port " << protocol->getPort()); + broker->registerProtocolFactory("ssl", protocol); + } catch (const std::exception& e) { + QPID_LOG(error, "Failed to initialise SSL plugin: " << e.what()); + } + } } } } sslPlugin; -- cgit v1.2.1