diff options
Diffstat (limited to 'cpp/src/IceSSL/PluginI.cpp')
-rwxr-xr-x | cpp/src/IceSSL/PluginI.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/cpp/src/IceSSL/PluginI.cpp b/cpp/src/IceSSL/PluginI.cpp index 2e3cbe10414..cb515311c5a 100755 --- a/cpp/src/IceSSL/PluginI.cpp +++ b/cpp/src/IceSSL/PluginI.cpp @@ -41,17 +41,20 @@ registerIceSSL(bool loadOnInitialize) } +#ifndef ICE_CPP11_MAPPING IceSSL::CertificateVerifier::~CertificateVerifier() { // Out of line to avoid weak vtable } -IceSSL::NativeConnectionInfo::~NativeConnectionInfo() +IceSSL::PasswordPrompt::~PasswordPrompt() { // Out of line to avoid weak vtable } +#endif -IceSSL::PasswordPrompt::~PasswordPrompt() + +IceSSL::NativeConnectionInfo::~NativeConnectionInfo() { // Out of line to avoid weak vtable } @@ -130,17 +133,47 @@ IceSSL::PluginI::destroy() _engine = 0; } +#ifdef ICE_CPP11_MAPPING +void +IceSSL::PluginI::setCertificateVerifier(std::function<bool(const std::shared_ptr<NativeConnectionInfo>&)> verifier) +{ + if(verifier) + { + _engine->setCertificateVerifier(make_shared<CertificateVerifier>(std::move(verifier))); + } + else + { + _engine->setCertificateVerifier(nullptr); + } +} +#else void IceSSL::PluginI::setCertificateVerifier(const CertificateVerifierPtr& verifier) { _engine->setCertificateVerifier(verifier); } +#endif +#ifdef ICE_CPP11_MAPPING +void +IceSSL::PluginI::setPasswordPrompt(std::function<std::string()> prompt) +{ + if(prompt) + { + _engine->setPasswordPrompt(make_shared<PasswordPrompt>(std::move(prompt))); + } + else + { + _engine->setPasswordPrompt(nullptr); + } +} +#else void IceSSL::PluginI::setPasswordPrompt(const PasswordPromptPtr& prompt) { _engine->setPasswordPrompt(prompt); } +#endif #ifdef ICE_USE_OPENSSL void |