summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2016-09-16 11:32:07 -0400
committerJoe George <joe@zeroc.com>2016-09-16 11:32:07 -0400
commit1d753f0ab061822423ea0213b38ee54522415682 (patch)
tree64fbed6cb09d6f6dee927e7ef3c46a50ee31469c /cpp/src
parentMerge remote-tracking branch 'origin/3.6' (diff)
parentCleanup os version check in IceSSL/configuration (diff)
downloadice-1d753f0ab061822423ea0213b38ee54522415682.tar.bz2
ice-1d753f0ab061822423ea0213b38ee54522415682.tar.xz
ice-1d753f0ab061822423ea0213b38ee54522415682.zip
Merge remote-tracking branch 'origin/3.6'
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceSSL/SecureTransportTransceiverI.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
index 9471070bfea..e369156fcd9 100644
--- a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
+++ b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp
@@ -159,7 +159,7 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
}
default:
// case kSecTrustResultInvalid:
- // //case kSecTrustResultConfirm: // Used in old OS X versions
+ // case kSecTrustResultConfirm: // Used in old OS X versions
// case kSecTrustResultDeny:
// case kSecTrustResultRecoverableTrustFailure:
// case kSecTrustResultFatalTrustFailure:
@@ -259,14 +259,11 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
{
assert(!_trust);
err = SSLCopyPeerTrust(_ssl, &_trust);
- if(_incoming && err == errSSLBadCert && _engine->getVerifyPeer() == 1)
+ if(_incoming && _engine->getVerifyPeer() == 1 && (err == errSSLBadCert || _trust == 0))
{
- //
- // This is expected if the client doesn't provide a
- // certificate (occurs since 10.10). The server is
- // configured to verify to not require the client
- // certificate so we ignore the failure.
- //
+ // This is expected if the client doesn't provide a certificate. With 10.10 and 10.11 errSSLBadCert
+ // is expected, the server is configured to verify but not require the client
+ // certificate so we ignore the failure. In 10.12 there is no error and trust is 0.
continue;
}
if(err == noErr)