summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2012-01-27 20:03:54 +0000
committerTed Ross <tross@apache.org>2012-01-27 20:03:54 +0000
commitab01c9c19e109b2f91cb505f53497592c52ca88d (patch)
treef949ccc109e8a9d9ef0959859615d7e181647105 /cpp/src
parent2dd2e994b81425235e42edbbad390c9d92a08b12 (diff)
downloadqpid-python-ab01c9c19e109b2f91cb505f53497592c52ca88d.tar.gz
QPID-3787 - Fixed shutdown crash in SslPlugin, Fixed problem with sasl_mux test.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1236864 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/sys/SslPlugin.cpp5
-rwxr-xr-xcpp/src/tests/ssl_test6
2 files changed, 7 insertions, 4 deletions
diff --git a/cpp/src/qpid/sys/SslPlugin.cpp b/cpp/src/qpid/sys/SslPlugin.cpp
index ab15785492..48baef9042 100644
--- a/cpp/src/qpid/sys/SslPlugin.cpp
+++ b/cpp/src/qpid/sys/SslPlugin.cpp
@@ -96,10 +96,12 @@ typedef SslProtocolFactoryTmpl<SslMuxSocket> SslMuxProtocolFactory;
// Static instance to initialise plugin
static struct SslPlugin : public Plugin {
SslServerOptions options;
+ bool nssInitialized;
Options* getOptions() { return &options; }
- ~SslPlugin() { ssl::shutdownNSS(); }
+ SslPlugin() : nssInitialized(false) {}
+ ~SslPlugin() { if (nssInitialized) ssl::shutdownNSS(); }
void earlyInitialize(Target& target) {
broker::Broker* broker = dynamic_cast<broker::Broker*>(&target);
@@ -129,6 +131,7 @@ static struct SslPlugin : public Plugin {
} else {
try {
ssl::initNSS(options, true);
+ nssInitialized = true;
const broker::Broker::Options& opts = broker->getOptions();
diff --git a/cpp/src/tests/ssl_test b/cpp/src/tests/ssl_test
index c3158274e6..4dbb7df392 100755
--- a/cpp/src/tests/ssl_test
+++ b/cpp/src/tests/ssl_test
@@ -96,7 +96,7 @@ start_ssl_broker() {
}
start_ssl_mux_broker() {
- ../qpidd $COMMON_OPTS --port $1 --ssl-port $1
+ ../qpidd $COMMON_OPTS --port $1 --ssl-port $1 --auth no
PORTS=( ${PORTS[@]} $1 )
}
@@ -167,7 +167,7 @@ start_ssl_mux_broker $PORT || error "Could not start broker"
echo "Running SSL/TCP mux test on fixed port $PORT"
## Test connection via connection settings
-./qpid-perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary || error "SSL cnnection failed!"
+./qpid-perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary || error "SSL connection failed!"
./qpid-perftest --count ${COUNT} --port ${PORT} -P tcp -b $TEST_HOSTNAME --summary || error "TCP connection failed!"
# Test a broker chosen port - since ssl chooses port need to use --transport ssl here
@@ -176,7 +176,7 @@ PORT=${PORTS[0]}
echo "Running SSL/TCP mux test on random port $PORT"
## Test connection via connection settings
-./qpid-perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary || error "SSL cnnection failed!"
+./qpid-perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary || error "SSL connection failed!"
./qpid-perftest --count ${COUNT} --port ${PORT} -P tcp -b $TEST_HOSTNAME --summary || error "TCP connection failed!"
stop_brokers