summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Allan Jansen <cliffjansen@apache.org>2014-02-06 18:01:36 +0000
committerClifford Allan Jansen <cliffjansen@apache.org>2014-02-06 18:01:36 +0000
commit7311e5e071eed1b484f48a39bb4e5f776f5345de (patch)
treec403d5b4b0f7f286208d090750b7f13865a66b76
parent84fb665b89f8f57dff69ad3e9982f7c1fa19ae4d (diff)
downloadqpid-python-7311e5e071eed1b484f48a39bb4e5f776f5345de.tar.gz
QPID-5524: ssl-cert-name connection argument processing in AMQP 1.0. cpp client
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565376 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp5
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h1
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/SslTransport.cpp10
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/TransportContext.h3
4 files changed, 18 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
index 07367b8aa8..4230a0d644 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
@@ -819,6 +819,11 @@ qpid::sys::Codec& ConnectionContext::getCodec()
return *this;
}
+const qpid::messaging::ConnectionOptions* ConnectionContext::getOptions()
+{
+ return this;
+}
+
std::size_t ConnectionContext::decode(const char* buffer, std::size_t size)
{
qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h
index 2b5e85a6f5..75afeba46a 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h
+++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h
@@ -102,6 +102,7 @@ class ConnectionContext : public qpid::sys::ConnectionCodec, public qpid::messag
void activateOutput();
qpid::sys::Codec& getCodec();
+ const qpid::messaging::ConnectionOptions* getOptions();
//ConnectionCodec interface:
std::size_t decode(const char* buffer, std::size_t size);
std::size_t encode(char* buffer, std::size_t size);
diff --git a/qpid/cpp/src/qpid/messaging/amqp/SslTransport.cpp b/qpid/cpp/src/qpid/messaging/amqp/SslTransport.cpp
index a62a553d90..953e989f5f 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/SslTransport.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/SslTransport.cpp
@@ -20,6 +20,7 @@
*/
#include "SslTransport.h"
#include "TransportContext.h"
+#include "qpid/messaging/ConnectionOptions.h"
#include "qpid/sys/ssl/SslSocket.h"
#include "qpid/sys/AsynchIO.h"
#include "qpid/sys/ConnectionCodec.h"
@@ -52,7 +53,14 @@ struct StaticInit
}
-SslTransport::SslTransport(TransportContext& c, boost::shared_ptr<Poller> p) : context(c), connector(0), aio(0), poller(p) {}
+SslTransport::SslTransport(TransportContext& c, boost::shared_ptr<Poller> p) : context(c), connector(0), aio(0), poller(p)
+{
+ const ConnectionOptions* options = context.getOptions();
+ if (options->sslCertName != "") {
+ QPID_LOG(debug, "ssl-cert-name = " << options->sslCertName);
+ socket.setCertName(options->sslCertName);
+ }
+}
void SslTransport::connect(const std::string& host, const std::string& port)
{
diff --git a/qpid/cpp/src/qpid/messaging/amqp/TransportContext.h b/qpid/cpp/src/qpid/messaging/amqp/TransportContext.h
index 57192b5976..3ff353c19c 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/TransportContext.h
+++ b/qpid/cpp/src/qpid/messaging/amqp/TransportContext.h
@@ -26,6 +26,8 @@ namespace sys {
class Codec;
}
namespace messaging {
+class ConnectionOptions;
+
namespace amqp {
/**
@@ -38,6 +40,7 @@ class TransportContext
public:
virtual ~TransportContext() {}
virtual qpid::sys::Codec& getCodec() = 0;
+ virtual const qpid::messaging::ConnectionOptions* getOptions() = 0;
virtual void closed() = 0;
virtual void opened() = 0;
private: