summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/PluginI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceSSL/PluginI.cpp')
-rwxr-xr-xcpp/src/IceSSL/PluginI.cpp117
1 files changed, 34 insertions, 83 deletions
diff --git a/cpp/src/IceSSL/PluginI.cpp b/cpp/src/IceSSL/PluginI.cpp
index 1dcb535cce8..4e3cd01680a 100755
--- a/cpp/src/IceSSL/PluginI.cpp
+++ b/cpp/src/IceSSL/PluginI.cpp
@@ -21,40 +21,20 @@ using namespace std;
using namespace Ice;
using namespace IceSSL;
-//
-// Plug-in factory function.
-//
-extern "C" ICESSL_API Ice::Plugin*
-createIceSSL(const CommunicatorPtr& communicator, const string& /*name*/, const StringSeq& /*args*/)
-{
- return new PluginI(communicator);
-}
-
-namespace Ice
-{
-
-ICESSL_API void
-registerIceSSL(bool loadOnInitialize)
-{
- Ice::registerPluginFactory("IceSSL", createIceSSL, loadOnInitialize);
-}
-
-}
-
#ifndef ICE_CPP11_MAPPING
-IceSSL::CertificateVerifier::~CertificateVerifier()
+CertificateVerifier::~CertificateVerifier()
{
// Out of line to avoid weak vtable
}
-IceSSL::PasswordPrompt::~PasswordPrompt()
+PasswordPrompt::~PasswordPrompt()
{
// Out of line to avoid weak vtable
}
#endif
-IceSSL::NativeConnectionInfo::~NativeConnectionInfo()
+NativeConnectionInfo::~NativeConnectionInfo()
{
// Out of line to avoid weak vtable
}
@@ -65,29 +45,11 @@ IceSSL::Plugin::~Plugin()
}
//
-// Objective-C function to allow Objective-C programs to register plugin.
-//
-extern "C" ICESSL_API void
-ICEregisterIceSSL(bool loadOnInitialize)
-{
- Ice::registerIceSSL(loadOnInitialize);
-}
-
-//
// Plugin implementation.
//
-IceSSL::PluginI::PluginI(const Ice::CommunicatorPtr& com)
+PluginI::PluginI(const Ice::CommunicatorPtr& com, const SSLEnginePtr& engine) :
+ _engine(engine)
{
-#if defined(ICE_USE_SECURE_TRANSPORT)
- _engine = new SecureTransportEngine(com);
-#elif defined(ICE_USE_SCHANNEL)
- _engine = new SChannelEngine(com);
-#elif defined(ICE_OS_UWP)
- _engine = new UWPEngine(com);
-#else
- _engine = new OpenSSLEngine(com);
-#endif
-
//
// Register the endpoint factory. We have to do this now, rather
// than in initialize, because the communicator may need to
@@ -121,47 +83,21 @@ IceSSL::PluginI::PluginI(const Ice::CommunicatorPtr& com)
}
void
-IceSSL::PluginI::initialize()
+PluginI::initialize()
{
_engine->initialize();
}
void
-IceSSL::PluginI::destroy()
+PluginI::destroy()
{
_engine->destroy();
_engine = 0;
}
-string
-IceSSL::PluginI::getEngineName() const
-{
-#if defined(ICE_USE_SECURE_TRANSPORT)
- return "SecureTransportEngine";
-#elif defined(ICE_USE_SCHANNEL)
- return "SChannelEngine";
-#elif defined(ICE_OS_UWP)
- return "UWPEngine";
-#else
- ostringstream os;
- os << "OpenSSLEngine@" << SSLeay_version(SSLEAY_VERSION);
- return os.str();
-#endif
-}
-
-Ice::Long
-IceSSL::PluginI::getEngineVersion() const
-{
-#if defined(ICE_USE_OPENSSL)
- return SSLeay();
-#else
- return 0;
-#endif
-}
-
#ifdef ICE_CPP11_MAPPING
void
-IceSSL::PluginI::setCertificateVerifier(std::function<bool(const std::shared_ptr<NativeConnectionInfo>&)> verifier)
+PluginI::setCertificateVerifier(std::function<bool(const std::shared_ptr<NativeConnectionInfo>&)> verifier)
{
if(verifier)
{
@@ -174,7 +110,7 @@ IceSSL::PluginI::setCertificateVerifier(std::function<bool(const std::shared_ptr
}
#else
void
-IceSSL::PluginI::setCertificateVerifier(const CertificateVerifierPtr& verifier)
+PluginI::setCertificateVerifier(const CertificateVerifierPtr& verifier)
{
_engine->setCertificateVerifier(verifier);
}
@@ -182,7 +118,7 @@ IceSSL::PluginI::setCertificateVerifier(const CertificateVerifierPtr& verifier)
#ifdef ICE_CPP11_MAPPING
void
-IceSSL::PluginI::setPasswordPrompt(std::function<std::string()> prompt)
+PluginI::setPasswordPrompt(std::function<std::string()> prompt)
{
if(prompt)
{
@@ -195,22 +131,37 @@ IceSSL::PluginI::setPasswordPrompt(std::function<std::string()> prompt)
}
#else
void
-IceSSL::PluginI::setPasswordPrompt(const PasswordPromptPtr& prompt)
+PluginI::setPasswordPrompt(const PasswordPromptPtr& prompt)
{
_engine->setPasswordPrompt(prompt);
}
#endif
-#ifdef ICE_USE_OPENSSL
-void
-IceSSL::PluginI::setContext(SSL_CTX* context)
+extern "C"
+{
+
+ICESSL_API Ice::Plugin*
+createIceSSL(const CommunicatorPtr&, const string&, const StringSeq&);
+
+}
+
+namespace Ice
{
- _engine->context(context);
+
+ICESSL_API void
+registerIceSSL(bool loadOnInitialize)
+{
+ Ice::registerPluginFactory("IceSSL", createIceSSL, loadOnInitialize);
+}
+
}
-SSL_CTX*
-IceSSL::PluginI::getContext()
+//
+// Objective-C function to allow Objective-C programs to register plugin.
+//
+extern "C" ICESSL_API void
+ICEregisterIceSSL(bool loadOnInitialize)
{
- return _engine->context();
+ Ice::registerIceSSL(loadOnInitialize);
}
-#endif
+