diff --git a/NetSSL_Win/src/SSLManager.cpp b/NetSSL_Win/src/SSLManager.cpp index ef08481a3..7e71be549 100644 --- a/NetSSL_Win/src/SSLManager.cpp +++ b/NetSSL_Win/src/SSLManager.cpp @@ -1,7 +1,7 @@ // // SSLManager.cpp // -// $Id$ +// $Id: //poco/1.7/NetSSL_Win/src/SSLManager.cpp#2 $ // // Library: NetSSL_Win // Package: SSLCore @@ -18,6 +18,7 @@ #include "Poco/Net/Context.h" #include "Poco/Net/Utility.h" #include "Poco/Net/PrivateKeyPassphraseHandler.h" +#include "Poco/Net/RejectCertificateHandler.h" #include "Poco/SingletonHolder.h" #include "Poco/Delegate.h" #include "Poco/Util/Application.h" @@ -120,7 +121,17 @@ Context::Ptr SSLManager::defaultClientContext() Poco::FastMutex::ScopedLock lock(_mutex); if (!_ptrDefaultClientContext) - initDefaultContext(false); + { + try + { + initDefaultContext(false); + } + catch (Poco::IllegalStateException&) + { + _ptrClientCertificateHandler = new RejectCertificateHandler(false); + _ptrDefaultClientContext = new Context(Context::CLIENT_USE, ""); + } + } return _ptrDefaultClientContext; }