PROTON-1052: Make the exported API symbols more reasonable for ssl_domains.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/bd9a41bf Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/bd9a41bf Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/bd9a41bf Branch: refs/heads/go1 Commit: bd9a41bf29124e8437683e1cffd1fda2aa8de902 Parents: f650d37 Author: Andrew Stitcher <[email protected]> Authored: Thu Dec 10 17:01:42 2015 -0500 Committer: Andrew Stitcher <[email protected]> Committed: Thu Dec 10 17:01:42 2015 -0500 ---------------------------------------------------------------------- proton-c/bindings/cpp/include/proton/ssl.hpp | 22 +++++++++++++++------- proton-c/bindings/cpp/src/ssl_domain.cpp | 2 ++ 2 files changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bd9a41bf/proton-c/bindings/cpp/include/proton/ssl.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/ssl.hpp b/proton-c/bindings/cpp/include/proton/ssl.hpp index d7cdfda..f1b5974 100644 --- a/proton-c/bindings/cpp/include/proton/ssl.hpp +++ b/proton-c/bindings/cpp/include/proton/ssl.hpp @@ -74,7 +74,7 @@ class ssl_certificate { // Base class for SSL configuration class ssl_domain { public: - PN_CPP_EXTERN ~ssl_domain(); + ~ssl_domain(); protected: ssl_domain(); @@ -83,13 +83,10 @@ class ssl_domain { private: pn_ssl_domain_t *impl_; - - friend class connection_options; - friend class container_impl; }; /** SSL/TLS configuration for inbound connections created from a listener */ -class server_domain : public ssl_domain { +class server_domain : private ssl_domain { public: /** A server domain based on the supplied X509 certificate specifier. */ PN_CPP_EXTERN server_domain(ssl_certificate &cert); @@ -99,19 +96,30 @@ class server_domain : public ssl_domain { ssl::verify_mode_t mode = ssl::VERIFY_PEER); /** A server domain restricted to available anonymous cipher suites on the platform. */ PN_CPP_EXTERN server_domain(); + + PN_CPP_EXTERN ~server_domain(); + + private: + // Bring pn_domain into scope and allow container_impl to use it + using ssl_domain::pn_domain; + friend class container_impl; }; /** SSL/TLS configuration for outgoing connections created */ -class client_domain : public ssl_domain { +class client_domain : private ssl_domain { public: PN_CPP_EXTERN client_domain(const std::string &trust_db, ssl::verify_mode_t = ssl::VERIFY_PEER_NAME); PN_CPP_EXTERN client_domain(ssl_certificate&, const std::string &trust_db, ssl::verify_mode_t = ssl::VERIFY_PEER_NAME); /** A client domain restricted to available anonymous cipher suites on the platform. */ PN_CPP_EXTERN client_domain(); + PN_CPP_EXTERN ~client_domain(); + private: - client_domain(ssl_domain); + // Bring pn_domain into scope and allow connection_options to use it + using ssl_domain::pn_domain; + friend class connection_options; }; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bd9a41bf/proton-c/bindings/cpp/src/ssl_domain.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/ssl_domain.cpp b/proton-c/bindings/cpp/src/ssl_domain.cpp index 8bb081f..2631880 100644 --- a/proton-c/bindings/cpp/src/ssl_domain.cpp +++ b/proton-c/bindings/cpp/src/ssl_domain.cpp @@ -71,6 +71,7 @@ server_domain::server_domain( } server_domain::server_domain() {} +server_domain::~server_domain() {} namespace { void client_setup(pn_ssl_domain_t *dom, const std::string &trust_db, ssl::verify_mode_t mode) { @@ -92,6 +93,7 @@ client_domain::client_domain(ssl_certificate &cert, const std::string &trust_db, } client_domain::client_domain() {} +client_domain::~client_domain() {} ssl_certificate::ssl_certificate(const std::string &main, const std::string &extra) : certdb_main_(main), certdb_extra_(extra), pw_set_(false) {} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
