zeroc-ice 3.7.2 → 3.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/ext/Config.h +4 -0
- data/ext/Operation.cpp +5 -5
- data/ext/Properties.cpp +1 -1
- data/ext/Proxy.cpp +16 -2
- data/ext/Types.cpp +45 -40
- data/ext/Util.cpp +1 -1
- data/ext/Util.h +10 -8
- data/ext/ice/cpp/include/Ice/Config.h +4 -0
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
- data/ext/ice/cpp/include/Ice/IconvStringConverter.h +4 -3
- data/ext/ice/cpp/include/Ice/InputStream.h +4 -4
- data/ext/ice/cpp/include/Ice/Optional.h +11 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/OutputStream.h +5 -5
- data/ext/ice/cpp/include/Ice/Proxy.h +17 -5
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
- data/ext/ice/cpp/include/Ice/Value.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Config.h +16 -6
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +4 -4
- data/ext/ice/cpp/include/IceUtil/Optional.h +8 -0
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +17 -14
- data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +2 -2
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +6 -0
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +1 -1
- data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Connection.h +33 -36
- data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Current.h +20 -21
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +24 -24
- data/ext/ice/cpp/include/generated/Ice/EndpointF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/FacetMap.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Identity.h +4 -5
- data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +15 -15
- data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +27 -93
- data/ext/ice/cpp/include/generated/Ice/Locator.h +27 -32
- data/ext/ice/cpp/include/generated/Ice/LocatorF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Logger.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/LoggerF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +75 -79
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/PluginF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Process.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ProcessF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Properties.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +9 -9
- data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +9 -11
- data/ext/ice/cpp/include/generated/Ice/Router.h +22 -22
- data/ext/ice/cpp/include/generated/Ice/RouterF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +3 -3
- data/ext/ice/cpp/include/generated/Ice/Version.h +15 -17
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +3 -3
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +3 -3
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +3 -3
- data/ext/ice/cpp/src/Ice/ArgVector.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Base64.cpp +11 -12
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Buffer.cpp +2 -2
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Communicator.cpp +3 -3
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +19 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +5 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +31 -16
- data/ext/ice/cpp/src/Ice/Current.cpp +3 -3
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +13 -0
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +6 -5
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +3 -3
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Exception.cpp +5 -5
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -3
- data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +12 -1
- data/ext/ice/cpp/src/Ice/Identity.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Incoming.cpp +2 -0
- data/ext/ice/cpp/src/Ice/Initialize.cpp +4 -3
- data/ext/ice/cpp/src/Ice/InputStream.cpp +19 -19
- data/ext/ice/cpp/src/Ice/Instance.cpp +28 -8
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +3 -3
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/LocalException.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Locator.cpp +7 -7
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Logger.cpp +3 -3
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -7
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +6 -0
- data/ext/ice/cpp/src/Ice/Metrics.cpp +5 -5
- data/ext/ice/cpp/src/Ice/Network.cpp +23 -22
- data/ext/ice/cpp/src/Ice/Network.h +1 -1
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +57 -0
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +40 -0
- data/ext/ice/cpp/src/Ice/Object.cpp +9 -7
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +13 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +4 -0
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +3 -3
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +24 -24
- data/ext/ice/cpp/src/Ice/Plugin.cpp +3 -3
- data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Process.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Properties.cpp +3 -3
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +4 -4
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +2 -1
- data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +6 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +3 -2
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Router.cpp +6 -6
- data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/SHA1.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Selector.cpp +18 -13
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -3
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -3
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +6 -6
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +6 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +5 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +5 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +5 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +63 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.h +10 -2
- data/ext/ice/cpp/src/Ice/Timer.cpp +10 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +11 -1
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +10 -2
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +3 -3
- data/ext/ice/cpp/src/Ice/Version.cpp +3 -3
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +16 -15
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +3 -3
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +37 -8
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +3 -3
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +3 -3
- data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +3 -3
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +3 -3
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +4 -16
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -1
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +40 -3
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -7
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -2
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +18 -6
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +19 -7
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +2 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +32 -21
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +21 -6
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +19 -16
- data/ext/ice/cpp/src/IceSSL/Util.cpp +11 -5
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +3 -3
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +40 -10
- data/ext/ice/cpp/src/IceUtil/Random.cpp +2 -2
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +5 -5
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +3 -3
- data/ext/ice/cpp/src/IceUtil/Time.cpp +3 -3
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +5 -5
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +4 -4
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +13 -9
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +1 -1
- data/ext/ice/cpp/src/Slice/Grammar.cpp +8 -0
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +1 -2
- data/ext/ice/cpp/src/Slice/MD5I.cpp +8 -0
- data/ext/ice/cpp/src/Slice/Parser.cpp +60 -112
- data/ext/ice/cpp/src/Slice/Parser.h +27 -1
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +2 -1
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Scanner.cpp +8 -0
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +11 -6
- data/ext/ice/mcpp/Makefile +2 -5
- data/ice.gemspec +1 -1
- data/lib/Glacier2/Metrics.rb +1 -1
- data/lib/Glacier2/PermissionsVerifier.rb +1 -1
- data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
- data/lib/Glacier2/Router.rb +1 -1
- data/lib/Glacier2/RouterF.rb +1 -1
- data/lib/Glacier2/SSLInfo.rb +1 -1
- data/lib/Glacier2/Session.rb +1 -1
- data/lib/Ice/BuiltinSequences.rb +1 -1
- data/lib/Ice/Communicator.rb +1 -1
- data/lib/Ice/CommunicatorF.rb +1 -1
- data/lib/Ice/Connection.rb +1 -1
- data/lib/Ice/ConnectionF.rb +1 -1
- data/lib/Ice/Current.rb +1 -1
- data/lib/Ice/Endpoint.rb +1 -1
- data/lib/Ice/EndpointF.rb +1 -1
- data/lib/Ice/EndpointTypes.rb +1 -1
- data/lib/Ice/FacetMap.rb +1 -1
- data/lib/Ice/Identity.rb +1 -1
- data/lib/Ice/ImplicitContext.rb +1 -1
- data/lib/Ice/ImplicitContextF.rb +1 -1
- data/lib/Ice/Instrumentation.rb +1 -1
- data/lib/Ice/InstrumentationF.rb +1 -1
- data/lib/Ice/LocalException.rb +1 -1
- data/lib/Ice/Locator.rb +1 -1
- data/lib/Ice/LocatorF.rb +1 -1
- data/lib/Ice/Logger.rb +1 -1
- data/lib/Ice/LoggerF.rb +1 -1
- data/lib/Ice/Metrics.rb +1 -1
- data/lib/Ice/ObjectAdapter.rb +1 -1
- data/lib/Ice/ObjectAdapterF.rb +1 -1
- data/lib/Ice/ObjectFactory.rb +1 -1
- data/lib/Ice/Plugin.rb +1 -1
- data/lib/Ice/PluginF.rb +1 -1
- data/lib/Ice/Process.rb +1 -1
- data/lib/Ice/ProcessF.rb +1 -1
- data/lib/Ice/Properties.rb +1 -1
- data/lib/Ice/PropertiesAdmin.rb +1 -1
- data/lib/Ice/PropertiesF.rb +1 -1
- data/lib/Ice/RemoteLogger.rb +1 -1
- data/lib/Ice/Router.rb +1 -1
- data/lib/Ice/RouterF.rb +1 -1
- data/lib/Ice/ServantLocator.rb +1 -1
- data/lib/Ice/ServantLocatorF.rb +1 -1
- data/lib/Ice/SliceChecksumDict.rb +1 -1
- data/lib/Ice/ValueFactory.rb +1 -1
- data/lib/Ice/Version.rb +1 -1
- data/lib/IceBox/IceBox.rb +1 -1
- data/lib/IceGrid/Admin.rb +1 -1
- data/lib/IceGrid/Descriptor.rb +1 -1
- data/lib/IceGrid/Exception.rb +1 -1
- data/lib/IceGrid/FileParser.rb +1 -1
- data/lib/IceGrid/PluginFacade.rb +1 -1
- data/lib/IceGrid/Registry.rb +1 -1
- data/lib/IceGrid/Session.rb +1 -1
- data/lib/IceGrid/UserAccountMapper.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +1 -1
- data/lib/IcePatch2/FileServer.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +1 -1
- data/lib/IceStorm/Metrics.rb +1 -1
- data/slice/Glacier2/Metrics.ice +1 -1
- data/slice/Ice/Communicator.ice +57 -25
- data/slice/Ice/Connection.ice +14 -14
- data/slice/Ice/Current.ice +1 -1
- data/slice/Ice/Endpoint.ice +6 -6
- data/slice/Ice/EndpointF.ice +1 -1
- data/slice/Ice/FacetMap.ice +1 -1
- data/slice/Ice/ImplicitContext.ice +6 -6
- data/slice/Ice/Instrumentation.ice +6 -6
- data/slice/Ice/Logger.ice +6 -6
- data/slice/Ice/Metrics.ice +12 -9
- data/slice/Ice/ObjectAdapter.ice +43 -31
- data/slice/Ice/ObjectFactory.ice +1 -1
- data/slice/Ice/Plugin.ice +2 -2
- data/slice/Ice/Properties.ice +10 -10
- data/slice/Ice/ServantLocator.ice +4 -2
- data/slice/Ice/ValueFactory.ice +3 -3
- data/slice/IceBT/EndpointInfo.ice +1 -1
- data/slice/IceGrid/PluginFacade.ice +4 -4
- data/slice/IceIAP/ConnectionInfo.ice +1 -1
- data/slice/IceIAP/EndpointInfo.ice +1 -1
- data/slice/IceSSL/ConnectionInfo.ice +3 -2
- data/slice/IceSSL/ConnectionInfoF.ice +1 -1
- data/slice/IceSSL/EndpointInfo.ice +1 -1
- data/slice/IceStorm/Metrics.ice +1 -1
- metadata +5 -3
@@ -120,7 +120,8 @@ checkTrustResult(SecTrustRef trust,
|
|
120
120
|
//
|
121
121
|
if(engine->getCheckCertName() && !host.empty())
|
122
122
|
{
|
123
|
-
UniqueRef<
|
123
|
+
UniqueRef<CFStringRef> hostref(toCFString(host));
|
124
|
+
UniqueRef<SecPolicyRef> policy(SecPolicyCreateSSL(false, hostref.get()));
|
124
125
|
UniqueRef<CFArrayRef> policies;
|
125
126
|
if((err = SecTrustCopyPolicies(trust, &policies.get())))
|
126
127
|
{
|
@@ -212,8 +213,10 @@ IceSSL::SecureTransport::TransceiverI::initialize(IceInternal::Buffer& readBuffe
|
|
212
213
|
//
|
213
214
|
if(_delegate->getNativeInfo()->fd() != INVALID_SOCKET)
|
214
215
|
{
|
215
|
-
_maxSendPacketSize =
|
216
|
-
|
216
|
+
_maxSendPacketSize =
|
217
|
+
static_cast<size_t>(std::max(512, IceInternal::getSendBufferSize(_delegate->getNativeInfo()->fd())));
|
218
|
+
_maxRecvPacketSize =
|
219
|
+
static_cast<size_t>(std::max(512, IceInternal::getRecvBufferSize(_delegate->getNativeInfo()->fd())));
|
217
220
|
}
|
218
221
|
else
|
219
222
|
{
|
@@ -239,6 +242,18 @@ IceSSL::SecureTransport::TransceiverI::initialize(IceInternal::Buffer& readBuffe
|
|
239
242
|
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SSL connection failed\n" +
|
240
243
|
sslErrorToString(err));
|
241
244
|
}
|
245
|
+
|
246
|
+
//
|
247
|
+
// Enable SNI
|
248
|
+
//
|
249
|
+
if(!_incoming && _engine->getServerNameIndication() && !_host.empty() && !IceInternal::isIpAddress(_host))
|
250
|
+
{
|
251
|
+
if((err = SSLSetPeerDomainName(_ssl.get(), _host.data(), _host.length())))
|
252
|
+
{
|
253
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SNI host failed `" + _host + "'\n" +
|
254
|
+
sslErrorToString(err));
|
255
|
+
}
|
256
|
+
}
|
242
257
|
}
|
243
258
|
|
244
259
|
SSLSessionState state;
|
@@ -289,7 +304,7 @@ IceSSL::SecureTransport::TransceiverI::initialize(IceInternal::Buffer& readBuffe
|
|
289
304
|
throw ProtocolException(__FILE__, __LINE__, os.str());
|
290
305
|
}
|
291
306
|
|
292
|
-
for(
|
307
|
+
for(CFIndex i = 0, count = SecTrustGetCertificateCount(_trust.get()); i < count; ++i)
|
293
308
|
{
|
294
309
|
SecCertificateRef cert = SecTrustGetCertificateAtIndex(_trust.get(), i);
|
295
310
|
CFRetain(cert);
|
@@ -583,7 +598,7 @@ IceSSL::SecureTransport::TransceiverI::writeRaw(const char* data, size_t* length
|
|
583
598
|
IceInternal::SocketOperation op = _delegate->write(buf);
|
584
599
|
if(op == IceInternal::SocketOperationWrite)
|
585
600
|
{
|
586
|
-
*length = buf.i - buf.b.begin();
|
601
|
+
*length = static_cast<size_t>(buf.i - buf.b.begin());
|
587
602
|
_tflags |= SSLWantWrite;
|
588
603
|
return errSSLWouldBlock;
|
589
604
|
}
|
@@ -616,7 +631,7 @@ IceSSL::SecureTransport::TransceiverI::readRaw(char* data, size_t* length) const
|
|
616
631
|
IceInternal::SocketOperation op = _delegate->read(buf);
|
617
632
|
if(op == IceInternal::SocketOperationRead)
|
618
633
|
{
|
619
|
-
*length = buf.i - buf.b.begin();
|
634
|
+
*length = static_cast<size_t>(buf.i - buf.b.begin());
|
620
635
|
_tflags |= SSLWantRead;
|
621
636
|
return errSSLWouldBlock;
|
622
637
|
}
|
@@ -36,12 +36,13 @@ readCertFile(const string& file)
|
|
36
36
|
}
|
37
37
|
|
38
38
|
is.seekg(0, is.end);
|
39
|
-
size_t size = is.tellg();
|
39
|
+
size_t size = static_cast<size_t>(is.tellg());
|
40
40
|
is.seekg(0, is.beg);
|
41
41
|
|
42
|
-
UniqueRef<CFMutableDataRef> data(CFDataCreateMutable(kCFAllocatorDefault, size));
|
43
|
-
CFDataSetLength(data.get(), size);
|
44
|
-
is.read(reinterpret_cast<char*>(CFDataGetMutableBytePtr(data.get())),
|
42
|
+
UniqueRef<CFMutableDataRef> data(CFDataCreateMutable(kCFAllocatorDefault, static_cast<CFIndex>(size)));
|
43
|
+
CFDataSetLength(data.get(), static_cast<CFIndex>(size));
|
44
|
+
is.read(reinterpret_cast<char*>(CFDataGetMutableBytePtr(data.get())),
|
45
|
+
static_cast<streamsize>(size));
|
45
46
|
if(!is.good())
|
46
47
|
{
|
47
48
|
throw CertificateReadException(__FILE__, __LINE__, "error reading file " + file);
|
@@ -112,7 +113,7 @@ isCA(SecCertificateRef cert)
|
|
112
113
|
if(property)
|
113
114
|
{
|
114
115
|
CFArrayRef propertyValues = static_cast<CFArrayRef>(CFDictionaryGetValue(property.get(), kSecPropertyKeyValue));
|
115
|
-
for(
|
116
|
+
for(CFIndex i = 0, size = CFArrayGetCount(propertyValues); i < size; ++i)
|
116
117
|
{
|
117
118
|
CFDictionaryRef dict = static_cast<CFDictionaryRef>(CFArrayGetValueAtIndex(propertyValues, i));
|
118
119
|
CFStringRef label = static_cast<CFStringRef>(CFDictionaryGetValue(dict, kSecPropertyKeyLabel));
|
@@ -243,7 +244,7 @@ openKeychain(const std::string& path, const std::string& keychainPassword)
|
|
243
244
|
if(err == noErr)
|
244
245
|
{
|
245
246
|
const char* pass = keychainPassword.empty() ? 0 : keychainPassword.c_str();
|
246
|
-
if((err = SecKeychainUnlock(keychain.get(), keychainPassword.size(), pass, pass != 0)))
|
247
|
+
if((err = SecKeychainUnlock(keychain.get(), static_cast<UInt32>(keychainPassword.size()), pass, pass != 0)))
|
247
248
|
{
|
248
249
|
throw PluginInitializationException(__FILE__, __LINE__,
|
249
250
|
"IceSSL: unable to unlock keychain:\n" + sslErrorToString(err));
|
@@ -253,7 +254,8 @@ openKeychain(const std::string& path, const std::string& keychainPassword)
|
|
253
254
|
{
|
254
255
|
const char* pass = keychainPassword.empty() ? 0 : keychainPassword.c_str();
|
255
256
|
keychain.reset(0);
|
256
|
-
if((err = SecKeychainCreate(keychainPath.c_str(),
|
257
|
+
if((err = SecKeychainCreate(keychainPath.c_str(),
|
258
|
+
static_cast<UInt32>(keychainPassword.size()), pass, pass == 0, 0, &keychain.get())))
|
257
259
|
{
|
258
260
|
throw PluginInitializationException(__FILE__, __LINE__,
|
259
261
|
"IceSSL: unable to create keychain:\n" + sslErrorToString(err));
|
@@ -354,9 +356,9 @@ loadPrivateKey(const string& file, SecCertificateRef cert, SecKeychainRef keycha
|
|
354
356
|
// private key into the keychain and add the certificate.
|
355
357
|
//
|
356
358
|
UniqueRef<CFArrayRef> items(loadKeychainItems(file, kSecItemTypePrivateKey, keychain, password, prompt, retryMax));
|
357
|
-
|
359
|
+
CFIndex count = CFArrayGetCount(items.get());
|
358
360
|
UniqueRef<SecKeyRef> key;
|
359
|
-
for(
|
361
|
+
for(CFIndex i = 0; i < count; ++i)
|
360
362
|
{
|
361
363
|
SecKeychainItemRef itemRef =
|
362
364
|
static_cast<SecKeychainItemRef>(const_cast<void*>(CFArrayGetValueAtIndex(items.get(), 0)));
|
@@ -405,7 +407,7 @@ loadPrivateKey(const string& file, SecCertificateRef cert, SecKeychainRef keycha
|
|
405
407
|
SecKeychainAttribute attr;
|
406
408
|
attr.tag = kSecKeyLabel;
|
407
409
|
attr.data = const_cast<UInt8*>(CFDataGetBytePtr(hash.get()));
|
408
|
-
attr.length = CFDataGetLength(hash.get());
|
410
|
+
attr.length = static_cast<UInt32>(CFDataGetLength(hash.get()));
|
409
411
|
attributes.push_back(attr);
|
410
412
|
}
|
411
413
|
|
@@ -421,13 +423,13 @@ loadPrivateKey(const string& file, SecCertificateRef cert, SecKeychainRef keycha
|
|
421
423
|
SecKeychainAttribute attr;
|
422
424
|
attr.tag = kSecKeyPrintName;
|
423
425
|
attr.data = const_cast<char*>(label.c_str());
|
424
|
-
attr.length = label.size();
|
426
|
+
attr.length = static_cast<UInt32>(label.size());
|
425
427
|
attributes.push_back(attr);
|
426
428
|
}
|
427
429
|
|
428
430
|
SecKeychainAttributeList attrs;
|
429
431
|
attrs.attr = &attributes[0];
|
430
|
-
attrs.count = attributes.size();
|
432
|
+
attrs.count = static_cast<UInt32>(attributes.size());
|
431
433
|
SecKeychainItemModifyAttributesAndData(reinterpret_cast<SecKeychainItemRef>(key.get()), &attrs, 0, 0);
|
432
434
|
|
433
435
|
UniqueRef<SecIdentityRef> identity;
|
@@ -485,7 +487,8 @@ loadCerts(const string& file)
|
|
485
487
|
}
|
486
488
|
|
487
489
|
vector<unsigned char> data(IceInternal::Base64::decode(string(&buffer[startpos], size)));
|
488
|
-
UniqueRef<CFDataRef> certdata(CFDataCreate(kCFAllocatorDefault, &data[0],
|
490
|
+
UniqueRef<CFDataRef> certdata(CFDataCreate(kCFAllocatorDefault, &data[0],
|
491
|
+
static_cast<CFIndex>(data.size())));
|
489
492
|
UniqueRef<SecCertificateRef> cert(SecCertificateCreateWithData(0, certdata.get()));
|
490
493
|
if(!cert)
|
491
494
|
{
|
@@ -637,7 +640,7 @@ IceSSL::SecureTransport::loadCACertificates(const string& file)
|
|
637
640
|
#else
|
638
641
|
UniqueRef<CFArrayRef> items(loadKeychainItems(file, kSecItemTypeCertificate, 0, "", 0, 0));
|
639
642
|
UniqueRef<CFArrayRef> certificateAuthorities(CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks));
|
640
|
-
|
643
|
+
CFIndex count = CFArrayGetCount(items.get());
|
641
644
|
for(CFIndex i = 0; i < count; ++i)
|
642
645
|
{
|
643
646
|
SecCertificateRef cert =
|
@@ -760,7 +763,7 @@ IceSSL::SecureTransport::findCertificateChain(const std::string& keychainPath,
|
|
760
763
|
{
|
761
764
|
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: invalid value `" + value + "'");
|
762
765
|
}
|
763
|
-
UniqueRef<CFDataRef> v(CFDataCreate(kCFAllocatorDefault, &buffer[0], buffer.size()));
|
766
|
+
UniqueRef<CFDataRef> v(CFDataCreate(kCFAllocatorDefault, &buffer[0], static_cast<CFIndex>(buffer.size())));
|
764
767
|
CFDictionarySetValue(query.get(), field == "SUBJECTKEYID" ? kSecAttrSubjectKeyID : kSecAttrSerialNumber,
|
765
768
|
v.get());
|
766
769
|
valid = true;
|
@@ -800,7 +803,7 @@ IceSSL::SecureTransport::findCertificateChain(const std::string& keychainPath,
|
|
800
803
|
"IceSSL: error evaluating trust:\n" + sslErrorToString(err));
|
801
804
|
}
|
802
805
|
|
803
|
-
|
806
|
+
CFIndex chainLength = SecTrustGetCertificateCount(trust.get());
|
804
807
|
UniqueRef<CFArrayRef> items(CFArrayCreateMutable(kCFAllocatorDefault, chainLength, &kCFTypeArrayCallBacks));
|
805
808
|
for(int i = 0; i < chainLength; ++i)
|
806
809
|
{
|
@@ -20,6 +20,12 @@
|
|
20
20
|
|
21
21
|
#include <fstream>
|
22
22
|
|
23
|
+
#ifdef __IBMCPP__
|
24
|
+
// Work-around for xlC visibility bug
|
25
|
+
// See "ifstream::tellg visibility error" thread on IBM xlC forum
|
26
|
+
extern template class std::fpos<char*>;
|
27
|
+
#endif
|
28
|
+
|
23
29
|
using namespace std;
|
24
30
|
using namespace Ice;
|
25
31
|
using namespace IceInternal;
|
@@ -36,8 +42,8 @@ IceSSL::fromCFString(CFStringRef v)
|
|
36
42
|
{
|
37
43
|
CFIndex size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(v), kCFStringEncodingUTF8);
|
38
44
|
vector<char> buffer;
|
39
|
-
buffer.resize(size + 1);
|
40
|
-
CFStringGetCString(v, &buffer[0], buffer.size(), kCFStringEncodingUTF8);
|
45
|
+
buffer.resize(static_cast<size_t>(size + 1));
|
46
|
+
CFStringGetCString(v, &buffer[0], static_cast<CFIndex>(buffer.size()), kCFStringEncodingUTF8);
|
41
47
|
s.assign(&buffer[0]);
|
42
48
|
}
|
43
49
|
return s;
|
@@ -118,12 +124,12 @@ IceSSL::readFile(const string& file, vector<char>& buffer)
|
|
118
124
|
}
|
119
125
|
|
120
126
|
is.seekg(0, is.end);
|
121
|
-
buffer.resize(static_cast<
|
127
|
+
buffer.resize(static_cast<size_t>(is.tellg()));
|
122
128
|
is.seekg(0, is.beg);
|
123
129
|
|
124
130
|
if(!buffer.empty())
|
125
131
|
{
|
126
|
-
is.read(&buffer[0], buffer.size());
|
132
|
+
is.read(&buffer[0], static_cast<streamsize>(buffer.size()));
|
127
133
|
if(!is.good())
|
128
134
|
{
|
129
135
|
throw CertificateReadException(__FILE__, __LINE__, "error reading file " + file);
|
@@ -134,7 +140,7 @@ IceSSL::readFile(const string& file, vector<char>& buffer)
|
|
134
140
|
bool
|
135
141
|
IceSSL::checkPath(const string& path, const string& defaultDir, bool dir, string& resolved)
|
136
142
|
{
|
137
|
-
#if defined(ICE_USE_SECURE_TRANSPORT_IOS)
|
143
|
+
#if defined(ICE_USE_SECURE_TRANSPORT_IOS) || defined(ICE_SWIFT)
|
138
144
|
CFBundleRef bundle = CFBundleGetMainBundle();
|
139
145
|
if(bundle)
|
140
146
|
{
|
@@ -431,7 +431,7 @@ IceUtilInternal::Options::split(const string& line)
|
|
431
431
|
j < i + 3 && j < l.size() && octalDigits.find_first_of(c = l[j]) != string::npos;
|
432
432
|
++j)
|
433
433
|
{
|
434
|
-
us = us * 8 + c - '0';
|
434
|
+
us = us * 8 + static_cast<unsigned short>(c - '0');
|
435
435
|
}
|
436
436
|
i = j - 1;
|
437
437
|
arg.push_back(static_cast<char>(us));
|
@@ -529,7 +529,7 @@ IceUtilInternal::Options::split(const string& line)
|
|
529
529
|
}
|
530
530
|
default:
|
531
531
|
{
|
532
|
-
assert(
|
532
|
+
assert(false); // Impossible parse state
|
533
533
|
break;
|
534
534
|
}
|
535
535
|
}
|
@@ -559,7 +559,7 @@ IceUtilInternal::Options::split(const string& line)
|
|
559
559
|
}
|
560
560
|
default:
|
561
561
|
{
|
562
|
-
assert(
|
562
|
+
assert(false); // Impossible parse state
|
563
563
|
break;
|
564
564
|
}
|
565
565
|
}
|
@@ -235,33 +235,43 @@ IceUtilInternal::OutputBase::operator!() const
|
|
235
235
|
// Output
|
236
236
|
// ----------------------------------------------------------------------
|
237
237
|
|
238
|
-
IceUtilInternal::Output::Output() :
|
238
|
+
IceUtilInternal::Output::Output(bool breakBeforeBlock, bool shortEmptyBlock) :
|
239
239
|
OutputBase(),
|
240
240
|
_blockStart("{"),
|
241
241
|
_blockEnd("}"),
|
242
|
-
_par(-1)
|
242
|
+
_par(-1),
|
243
|
+
_breakBeforeBlock(breakBeforeBlock),
|
244
|
+
_shortEmptyBlock(shortEmptyBlock),
|
245
|
+
_emptyBlock(false)
|
243
246
|
{
|
244
247
|
}
|
245
248
|
|
246
|
-
IceUtilInternal::Output::Output(ostream& os) :
|
249
|
+
IceUtilInternal::Output::Output(ostream& os, bool breakBeforeBlock, bool shortEmptyBlock) :
|
247
250
|
OutputBase(os),
|
248
251
|
_blockStart("{"),
|
249
252
|
_blockEnd("}"),
|
250
|
-
_par(-1)
|
253
|
+
_par(-1),
|
254
|
+
_breakBeforeBlock(breakBeforeBlock),
|
255
|
+
_shortEmptyBlock(shortEmptyBlock),
|
256
|
+
_emptyBlock(false)
|
251
257
|
{
|
252
258
|
}
|
253
259
|
|
254
|
-
IceUtilInternal::Output::Output(const char* s) :
|
260
|
+
IceUtilInternal::Output::Output(const char* s, bool breakBeforeBlock, bool shortEmptyBlock) :
|
255
261
|
OutputBase(s),
|
256
262
|
_blockStart("{"),
|
257
263
|
_blockEnd("}"),
|
258
|
-
_par(-1)
|
264
|
+
_par(-1),
|
265
|
+
_breakBeforeBlock(breakBeforeBlock),
|
266
|
+
_shortEmptyBlock(shortEmptyBlock),
|
267
|
+
_emptyBlock(false)
|
259
268
|
{
|
260
269
|
}
|
261
270
|
|
262
271
|
void
|
263
272
|
IceUtilInternal::Output::print(const string& s)
|
264
273
|
{
|
274
|
+
_emptyBlock = false;
|
265
275
|
if(_par >= 0)
|
266
276
|
{
|
267
277
|
if(++_par > 1) // No comma for the first parameter.
|
@@ -277,22 +287,41 @@ IceUtilInternal::Output::sb()
|
|
277
287
|
{
|
278
288
|
if(_blockStart.length())
|
279
289
|
{
|
280
|
-
|
290
|
+
if(_breakBeforeBlock)
|
291
|
+
{
|
292
|
+
newline();
|
293
|
+
}
|
294
|
+
else
|
295
|
+
{
|
296
|
+
_out << ' ';
|
297
|
+
}
|
281
298
|
_out << _blockStart;
|
282
299
|
}
|
283
300
|
++_pos;
|
284
301
|
inc();
|
285
302
|
_separator = false;
|
303
|
+
_emptyBlock = true;
|
286
304
|
}
|
287
305
|
|
288
306
|
void
|
289
307
|
IceUtilInternal::Output::eb()
|
290
308
|
{
|
291
309
|
dec();
|
292
|
-
if(
|
310
|
+
if(_emptyBlock && _shortEmptyBlock)
|
311
|
+
{
|
312
|
+
if(_blockEnd.length())
|
313
|
+
{
|
314
|
+
_separator = true;
|
315
|
+
_out << _blockEnd;
|
316
|
+
}
|
317
|
+
}
|
318
|
+
else
|
293
319
|
{
|
294
|
-
|
295
|
-
|
320
|
+
if(_blockEnd.length())
|
321
|
+
{
|
322
|
+
newline();
|
323
|
+
_out << _blockEnd;
|
324
|
+
}
|
296
325
|
}
|
297
326
|
--_pos;
|
298
327
|
}
|
@@ -300,6 +329,7 @@ IceUtilInternal::Output::eb()
|
|
300
329
|
void
|
301
330
|
IceUtilInternal::Output::spar(char c)
|
302
331
|
{
|
332
|
+
_emptyBlock = false;
|
303
333
|
_out << c;
|
304
334
|
_par = 0;
|
305
335
|
}
|
@@ -147,7 +147,7 @@ IceUtilInternal::generateRandom(char* buffer, size_t size)
|
|
147
147
|
}
|
148
148
|
else
|
149
149
|
{
|
150
|
-
index += bytesRead;
|
150
|
+
index += static_cast<size_t>(bytesRead);
|
151
151
|
reads++;
|
152
152
|
}
|
153
153
|
}
|
@@ -174,7 +174,7 @@ IceUtilInternal::random(int limit)
|
|
174
174
|
#endif
|
175
175
|
if(limit > 0)
|
176
176
|
{
|
177
|
-
r = r % limit;
|
177
|
+
r = r % static_cast<unsigned int>(limit);
|
178
178
|
}
|
179
179
|
return r;
|
180
180
|
}
|
@@ -92,7 +92,7 @@ public:
|
|
92
92
|
do
|
93
93
|
{
|
94
94
|
assert(factor <= 4);
|
95
|
-
const size_t chunkSize = std::max<size_t>((sourceEnd - sourceStart) * factor, 4);
|
95
|
+
const size_t chunkSize = std::max<size_t>(static_cast<size_t>(sourceEnd - sourceStart) * factor, 4);
|
96
96
|
++factor; // at the next round, we'll allocate more bytes per remaining source character
|
97
97
|
|
98
98
|
targetStart = reinterpret_cast<char*>(buffer.getMoreBytes(chunkSize, reinterpret_cast<Byte*>(targetNext)));
|
@@ -145,7 +145,7 @@ public:
|
|
145
145
|
|
146
146
|
virtual void fromUTF8(const Byte* sourceStart, const Byte* sourceEnd, wstring& target) const
|
147
147
|
{
|
148
|
-
const size_t sourceSize = sourceEnd - sourceStart;
|
148
|
+
const size_t sourceSize = static_cast<size_t>(sourceEnd - sourceStart);
|
149
149
|
|
150
150
|
if(sourceSize == 0)
|
151
151
|
{
|
@@ -173,7 +173,7 @@ public:
|
|
173
173
|
throw IllegalConversionException(__FILE__, __LINE__, "codecvt.in failure");
|
174
174
|
}
|
175
175
|
|
176
|
-
target.resize(targetNext - targetStart);
|
176
|
+
target.resize(static_cast<size_t>(targetNext - targetStart));
|
177
177
|
}
|
178
178
|
}
|
179
179
|
|
@@ -275,7 +275,7 @@ public:
|
|
275
275
|
size_t bytesUsed = 0;
|
276
276
|
if(firstUnused != 0)
|
277
277
|
{
|
278
|
-
bytesUsed = firstUnused - reinterpret_cast<const Byte*>(_buffer.data());
|
278
|
+
bytesUsed = static_cast<size_t>(firstUnused - reinterpret_cast<const Byte*>(_buffer.data()));
|
279
279
|
}
|
280
280
|
|
281
281
|
if(_buffer.size() < howMany + bytesUsed)
|
@@ -289,7 +289,7 @@ public:
|
|
289
289
|
void swap(string& other, const Byte* tail)
|
290
290
|
{
|
291
291
|
assert(tail >= reinterpret_cast<const Byte*>(_buffer.data()));
|
292
|
-
_buffer.resize(tail - reinterpret_cast<const Byte*>(_buffer.data()));
|
292
|
+
_buffer.resize(static_cast<size_t>(tail - reinterpret_cast<const Byte*>(_buffer.data())));
|
293
293
|
other.swap(_buffer);
|
294
294
|
}
|
295
295
|
|
@@ -22,11 +22,11 @@ toHexDigit(Byte b)
|
|
22
22
|
assert(b < 16);
|
23
23
|
if(b < 10)
|
24
24
|
{
|
25
|
-
return '0' + b;
|
25
|
+
return static_cast<char>('0' + b);
|
26
26
|
}
|
27
27
|
else
|
28
28
|
{
|
29
|
-
return 'a' - 10 + b;
|
29
|
+
return static_cast<char>('a' - 10 + b);
|
30
30
|
}
|
31
31
|
}
|
32
32
|
|
@@ -289,7 +289,7 @@ checkChar(const string& s, string::size_type pos)
|
|
289
289
|
ostr << " has invalid ordinal value " << static_cast<int>(c);
|
290
290
|
throw IllegalArgumentException(__FILE__, __LINE__, ostr.str());
|
291
291
|
}
|
292
|
-
return c;
|
292
|
+
return static_cast<char>(c);
|
293
293
|
}
|
294
294
|
|
295
295
|
//
|