diff options
author | Clifford Allan Jansen <cliffjansen@apache.org> | 2014-02-06 18:01:36 +0000 |
---|---|---|
committer | Clifford Allan Jansen <cliffjansen@apache.org> | 2014-02-06 18:01:36 +0000 |
commit | 7311e5e071eed1b484f48a39bb4e5f776f5345de (patch) | |
tree | c403d5b4b0f7f286208d090750b7f13865a66b76 | |
parent | 84fb665b89f8f57dff69ad3e9982f7c1fa19ae4d (diff) | |
download | qpid-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
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: |