zeroc-ice 3.6.5 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/BZIP2_LICENSE +42 -0
- data/ICE_LICENSE +17 -17
- data/LICENSE +12 -12
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +150 -53
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +2 -12
- data/ext/Connection.cpp +89 -68
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +16 -45
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -5
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +4 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/Operation.cpp +33 -44
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +22 -57
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +5 -5
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +244 -171
- data/ext/Types.h +118 -66
- data/ext/Util.cpp +13 -9
- data/ext/Util.h +10 -10
- data/ext/ValueFactoryManager.cpp +445 -0
- data/ext/ValueFactoryManager.h +100 -0
- data/ext/extconf.rb +47 -45
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/Application.h +77 -60
- data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
- data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
- data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
- data/ext/ice/cpp/include/Ice/Config.h +7 -36
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
- data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
- data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Exception.h +66 -56
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
- data/ext/ice/cpp/include/Ice/Format.h +6 -1
- data/ext/ice/cpp/include/Ice/Functional.h +33 -33
- data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
- data/ext/ice/cpp/include/Ice/Handle.h +6 -11
- data/ext/ice/cpp/include/Ice/Ice.h +9 -5
- data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
- data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
- data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
- data/ext/ice/cpp/include/Ice/Object.h +105 -56
- data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
- data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
- data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
- data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
- data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +13 -18
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
- data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
- data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
- data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
- data/ext/ice/cpp/include/Ice/Value.h +104 -0
- data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
- data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
- data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
- data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
- data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
- data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
- data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
- data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
- data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
- data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
- data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
- data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
- data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
- data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
- data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
- data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
- data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
- data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
- data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
- data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
- data/ext/ice/cpp/src/Ice/ACM.h +9 -2
- data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
- data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
- data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
- data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
- data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
- data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
- data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
- data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
- data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Connector.h +4 -3
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
- data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
- data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
- data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
- data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
- data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
- data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
- data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
- data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
- data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
- data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
- data/ext/ice/cpp/src/Ice/Instance.h +30 -18
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
- data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
- data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
- data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
- data/ext/ice/cpp/src/Ice/Network.h +100 -23
- data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
- data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
- data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
- data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
- data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
- data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
- data/ext/ice/cpp/src/Ice/Reference.h +27 -22
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
- data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
- data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
- data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
- data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
- data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
- data/ext/ice/cpp/src/Ice/Selector.h +100 -147
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
- data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
- data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
- data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
- data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
- data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
- data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
- data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
- data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
- data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
- data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
- data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
- data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
- data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
- data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
- data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
- data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
- data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
- data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
- data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
- data/ext/ice/cpp/src/Slice/MD5.h +1 -1
- data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
- data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
- data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
- data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
- data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
- data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
- data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
- data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
- data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
- data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
- data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
- data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
- data/ext/ice/cpp/src/Slice/Util.h +54 -0
- data/ext/ice/mcpp/Makefile +5 -2
- data/ice.gemspec +2 -7
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +7 -46
- data/lib/Glacier2/PermissionsVerifier.rb +24 -95
- data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
- data/lib/Glacier2/Router.rb +32 -74
- data/lib/Glacier2/RouterF.rb +3 -3
- data/lib/Glacier2/SSLInfo.rb +4 -7
- data/lib/Glacier2/Session.rb +88 -307
- data/lib/Ice.rb +83 -52
- data/lib/Ice/BuiltinSequences.rb +4 -4
- data/lib/Ice/Communicator.rb +56 -58
- data/lib/Ice/CommunicatorF.rb +3 -3
- data/lib/Ice/Connection.rb +153 -162
- data/lib/Ice/ConnectionF.rb +3 -3
- data/lib/Ice/Current.rb +4 -11
- data/lib/Ice/Endpoint.rb +57 -133
- data/lib/Ice/EndpointF.rb +3 -3
- data/lib/Ice/EndpointTypes.rb +3 -7
- data/lib/Ice/FacetMap.rb +4 -4
- data/lib/Ice/Identity.rb +5 -8
- data/lib/Ice/ImplicitContext.rb +5 -34
- data/lib/Ice/ImplicitContextF.rb +3 -3
- data/lib/Ice/Instrumentation.rb +23 -275
- data/lib/Ice/InstrumentationF.rb +3 -3
- data/lib/Ice/LocalException.rb +95 -141
- data/lib/Ice/Locator.rb +51 -165
- data/lib/Ice/LocatorF.rb +3 -3
- data/lib/Ice/Logger.rb +5 -34
- data/lib/Ice/LoggerF.rb +3 -3
- data/lib/Ice/Metrics.rb +61 -416
- data/lib/Ice/ObjectAdapter.rb +34 -0
- data/lib/Ice/ObjectAdapterF.rb +3 -3
- data/lib/Ice/ObjectFactory.rb +5 -30
- data/lib/Ice/Plugin.rb +7 -60
- data/lib/Ice/PluginF.rb +3 -3
- data/lib/Ice/Process.rb +16 -52
- data/lib/Ice/ProcessF.rb +3 -3
- data/lib/Ice/Properties.rb +5 -41
- data/lib/Ice/PropertiesAdmin.rb +19 -56
- data/lib/Ice/PropertiesF.rb +3 -3
- data/lib/Ice/RemoteLogger.rb +34 -115
- data/lib/Ice/Router.rb +29 -101
- data/lib/Ice/RouterF.rb +3 -3
- data/lib/Ice/ServantLocator.rb +31 -0
- data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
- data/lib/Ice/SliceChecksumDict.rb +3 -3
- data/lib/Ice/ValueFactory.rb +33 -0
- data/lib/Ice/Version.rb +5 -11
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +44 -148
- data/lib/IceGrid.rb +1 -4
- data/lib/IceGrid/Admin.rb +551 -427
- data/lib/IceGrid/Descriptor.rb +62 -529
- data/lib/IceGrid/Exception.rb +24 -45
- data/lib/IceGrid/FileParser.rb +14 -50
- data/lib/IceGrid/PluginFacade.rb +40 -0
- data/lib/IceGrid/Registry.rb +151 -58
- data/lib/IceGrid/Session.rb +25 -64
- data/lib/IceGrid/UserAccountMapper.rb +14 -50
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +5 -11
- data/lib/IcePatch2/FileServer.rb +33 -76
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +79 -206
- data/lib/IceStorm/Metrics.rb +11 -89
- data/slice/Glacier2/Metrics.ice +8 -4
- data/slice/Glacier2/PermissionsVerifier.ice +10 -7
- data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
- data/slice/Glacier2/Router.ice +10 -8
- data/slice/Glacier2/RouterF.ice +7 -4
- data/slice/Glacier2/SSLInfo.ice +8 -5
- data/slice/Glacier2/Session.ice +15 -13
- data/slice/Ice/BuiltinSequences.ice +7 -4
- data/slice/Ice/Communicator.ice +141 -66
- data/slice/Ice/CommunicatorF.ice +7 -4
- data/slice/Ice/Connection.ice +183 -86
- data/slice/Ice/ConnectionF.ice +7 -4
- data/slice/Ice/Current.ice +13 -9
- data/slice/Ice/Endpoint.ice +63 -14
- data/slice/Ice/EndpointF.ice +7 -4
- data/slice/Ice/EndpointTypes.ice +8 -6
- data/slice/Ice/FacetMap.ice +7 -4
- data/slice/Ice/Identity.ice +13 -5
- data/slice/Ice/ImplicitContext.ice +20 -18
- data/slice/Ice/ImplicitContextF.ice +7 -4
- data/slice/Ice/Instrumentation.ice +20 -19
- data/slice/Ice/InstrumentationF.ice +8 -5
- data/slice/Ice/LocalException.ice +87 -87
- data/slice/Ice/Locator.ice +19 -18
- data/slice/Ice/LocatorF.ice +7 -4
- data/slice/Ice/Logger.ice +9 -7
- data/slice/Ice/LoggerF.ice +7 -4
- data/slice/Ice/Metrics.ice +18 -14
- data/slice/Ice/ObjectAdapter.ice +30 -13
- data/slice/Ice/ObjectAdapterF.ice +7 -4
- data/slice/Ice/ObjectFactory.ice +15 -12
- data/slice/Ice/Plugin.ice +9 -6
- data/slice/Ice/PluginF.ice +8 -5
- data/slice/Ice/Process.ice +9 -6
- data/slice/Ice/ProcessF.ice +7 -4
- data/slice/Ice/Properties.ice +15 -12
- data/slice/Ice/PropertiesAdmin.ice +9 -5
- data/slice/Ice/PropertiesF.ice +7 -4
- data/slice/Ice/RemoteLogger.ice +33 -24
- data/slice/Ice/Router.ice +16 -7
- data/slice/Ice/RouterF.ice +7 -4
- data/slice/Ice/ServantLocator.ice +13 -10
- data/slice/Ice/ServantLocatorF.ice +7 -4
- data/slice/Ice/SliceChecksumDict.ice +7 -4
- data/slice/Ice/ValueFactory.ice +127 -0
- data/slice/Ice/Version.ice +9 -5
- data/slice/IceBT/ConnectionInfo.ice +53 -0
- data/slice/IceBT/EndpointInfo.ice +51 -0
- data/slice/IceBT/Types.ice +39 -0
- data/slice/IceBox/IceBox.ice +20 -21
- data/slice/IceDiscovery/IceDiscovery.ice +9 -5
- data/slice/IceGrid/Admin.ice +390 -30
- data/slice/IceGrid/Descriptor.ice +37 -29
- data/slice/IceGrid/Exception.ice +33 -27
- data/slice/IceGrid/FileParser.ice +9 -6
- data/slice/IceGrid/PluginFacade.ice +11 -9
- data/slice/IceGrid/Registry.ice +139 -16
- data/slice/IceGrid/Session.ice +10 -8
- data/slice/IceGrid/UserAccountMapper.ice +9 -6
- data/slice/IceIAP/ConnectionInfo.ice +70 -0
- data/slice/IceIAP/EndpointInfo.ice +64 -0
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
- data/slice/IcePatch2/FileInfo.ice +9 -8
- data/slice/IcePatch2/FileServer.ice +17 -13
- data/slice/IceSSL/ConnectionInfo.ice +14 -17
- data/slice/IceSSL/ConnectionInfoF.ice +24 -0
- data/slice/IceSSL/EndpointInfo.ice +9 -30
- data/slice/IceStorm/IceStorm.ice +22 -18
- data/slice/IceStorm/Metrics.ice +9 -5
- metadata +154 -120
- data/ext/ObjectFactory.cpp +0 -140
- data/ext/ObjectFactory.h +0 -50
- data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
- data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
- data/ext/ice/cpp/include/Ice/Connection.h +0 -497
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
- data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
- data/ext/ice/cpp/include/Ice/Identity.h +0 -168
- data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
- data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
- data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
- data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
- data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
- data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
- data/ext/ice/cpp/include/Ice/Process.h +0 -574
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
- data/ext/ice/cpp/include/Ice/Router.h +0 -1159
- data/ext/ice/cpp/include/Ice/Stream.h +0 -447
- data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
- data/ext/ice/cpp/include/Ice/Version.h +0 -262
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
- data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
- data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
- data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
- data/ext/ice/cpp/include/Slice/Util.h +0 -56
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
- data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
- data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
- data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
- data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
- data/lib/IceGrid/Locator.rb +0 -106
- data/lib/IceGrid/Observer.rb +0 -572
- data/lib/IceGrid/Query.rb +0 -169
- data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
- data/slice/Freeze/CatalogData.ice +0 -49
- data/slice/Freeze/Connection.ice +0 -121
- data/slice/Freeze/DB.ice +0 -37
- data/slice/Freeze/Evictor.ice +0 -346
- data/slice/Freeze/EvictorF.ice +0 -22
- data/slice/Freeze/EvictorStorage.ice +0 -72
- data/slice/Freeze/Exception.ice +0 -100
- data/slice/Freeze/Transaction.ice +0 -58
- data/slice/Freeze/TransactionalEvictor.ice +0 -50
- data/slice/IceGrid/Locator.ice +0 -57
- data/slice/IceGrid/Observer.ice +0 -395
- data/slice/IceGrid/Query.ice +0 -131
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICESSL_SECURE_TRANSPORT_ENGINE_H
|
|
11
|
+
#define ICESSL_SECURE_TRANSPORT_ENGINE_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/SSLEngine.h>
|
|
14
|
+
#include <Ice/UniqueRef.h>
|
|
15
|
+
|
|
16
|
+
#include <Security/Security.h>
|
|
17
|
+
#include <Security/SecureTransport.h>
|
|
18
|
+
|
|
19
|
+
namespace IceSSL
|
|
20
|
+
{
|
|
21
|
+
|
|
22
|
+
namespace SecureTransport
|
|
23
|
+
{
|
|
24
|
+
|
|
25
|
+
class SSLEngine : public IceSSL::SSLEngine
|
|
26
|
+
{
|
|
27
|
+
public:
|
|
28
|
+
|
|
29
|
+
SSLEngine(const Ice::CommunicatorPtr&);
|
|
30
|
+
|
|
31
|
+
virtual void initialize();
|
|
32
|
+
virtual void destroy();
|
|
33
|
+
virtual IceInternal::TransceiverPtr
|
|
34
|
+
createTransceiver(const InstancePtr&, const IceInternal::TransceiverPtr&, const std::string&, bool);
|
|
35
|
+
|
|
36
|
+
SSLContextRef newContext(bool);
|
|
37
|
+
CFArrayRef getCertificateAuthorities() const;
|
|
38
|
+
std::string getCipherName(SSLCipherSuite) const;
|
|
39
|
+
|
|
40
|
+
private:
|
|
41
|
+
|
|
42
|
+
void parseCiphers(const std::string&);
|
|
43
|
+
|
|
44
|
+
IceInternal::UniqueRef<CFArrayRef> _certificateAuthorities;
|
|
45
|
+
IceInternal::UniqueRef<CFArrayRef> _chain;
|
|
46
|
+
|
|
47
|
+
SSLProtocol _protocolVersionMax;
|
|
48
|
+
SSLProtocol _protocolVersionMin;
|
|
49
|
+
|
|
50
|
+
#if TARGET_OS_IPHONE==0
|
|
51
|
+
std::vector<char> _dhParams;
|
|
52
|
+
#endif
|
|
53
|
+
std::vector<SSLCipherSuite> _ciphers;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
} // SecureTransport namespace end
|
|
57
|
+
|
|
58
|
+
} // IceSSL namespace end
|
|
59
|
+
|
|
60
|
+
#endif
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICESSL_SECURE_TRANSPORT_ENGINE_F_H
|
|
11
|
+
#define ICESSL_SECURE_TRANSPORT_ENGINE_F_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/Plugin.h>
|
|
14
|
+
#include <IceUtil/Shared.h>
|
|
15
|
+
#include <Ice/Handle.h>
|
|
16
|
+
|
|
17
|
+
namespace IceSSL
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
namespace SecureTransport
|
|
21
|
+
{
|
|
22
|
+
|
|
23
|
+
class SSLEngine;
|
|
24
|
+
ICESSL_API IceUtil::Shared* upCast(SSLEngine*);
|
|
25
|
+
typedef IceInternal::Handle<SSLEngine> SSLEnginePtr;
|
|
26
|
+
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
#endif
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#include <IceSSL/PluginI.h>
|
|
11
|
+
#include <IceSSL/SecureTransport.h>
|
|
12
|
+
#include <IceSSL/SecureTransportEngine.h>
|
|
13
|
+
|
|
14
|
+
#include <Ice/Initialize.h>
|
|
15
|
+
|
|
16
|
+
using namespace Ice;
|
|
17
|
+
using namespace std;
|
|
18
|
+
|
|
19
|
+
namespace
|
|
20
|
+
{
|
|
21
|
+
|
|
22
|
+
class PluginI : public IceSSL::PluginI
|
|
23
|
+
{
|
|
24
|
+
public:
|
|
25
|
+
|
|
26
|
+
PluginI(const Ice::CommunicatorPtr&);
|
|
27
|
+
|
|
28
|
+
virtual IceSSL::CertificatePtr create(SecCertificateRef) const;
|
|
29
|
+
virtual IceSSL::CertificatePtr load(const std::string&) const;
|
|
30
|
+
virtual IceSSL::CertificatePtr decode(const std::string&) const;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
} // anonymous namespace end
|
|
34
|
+
|
|
35
|
+
//
|
|
36
|
+
// Plugin implementation.
|
|
37
|
+
//
|
|
38
|
+
PluginI::PluginI(const Ice::CommunicatorPtr& com) :
|
|
39
|
+
IceSSL::PluginI(com, new IceSSL::SecureTransport::SSLEngine(com))
|
|
40
|
+
{
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
IceSSL::CertificatePtr
|
|
44
|
+
PluginI::create(SecCertificateRef cert) const
|
|
45
|
+
{
|
|
46
|
+
return IceSSL::SecureTransport::Certificate::create(cert);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
IceSSL::CertificatePtr
|
|
50
|
+
PluginI::load(const std::string& file) const
|
|
51
|
+
{
|
|
52
|
+
return IceSSL::SecureTransport::Certificate::load(file);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
IceSSL::CertificatePtr
|
|
56
|
+
PluginI::decode(const std::string& encoding) const
|
|
57
|
+
{
|
|
58
|
+
return IceSSL::SecureTransport::Certificate::load(encoding);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//
|
|
62
|
+
// Plug-in factory function.
|
|
63
|
+
//
|
|
64
|
+
extern "C" ICESSL_API Ice::Plugin*
|
|
65
|
+
createIceSSL(const Ice::CommunicatorPtr& communicator, const string& /*name*/, const Ice::StringSeq& /*args*/)
|
|
66
|
+
{
|
|
67
|
+
return new PluginI(communicator);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
IceSSL::CertificatePtr
|
|
71
|
+
IceSSL::Certificate::load(const std::string& file)
|
|
72
|
+
{
|
|
73
|
+
return IceSSL::SecureTransport::Certificate::load(file);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
IceSSL::CertificatePtr
|
|
77
|
+
IceSSL::Certificate::decode(const std::string& encoding)
|
|
78
|
+
{
|
|
79
|
+
return IceSSL::SecureTransport::Certificate::decode(encoding);
|
|
80
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
@@ -9,16 +9,18 @@
|
|
|
9
9
|
|
|
10
10
|
#include <IceSSL/SecureTransportTransceiverI.h>
|
|
11
11
|
#include <IceSSL/Instance.h>
|
|
12
|
-
#include <IceSSL/
|
|
12
|
+
#include <IceSSL/SecureTransportEngine.h>
|
|
13
|
+
#include <IceSSL/SecureTransportUtil.h>
|
|
14
|
+
#include <IceSSL/ConnectionInfo.h>
|
|
13
15
|
|
|
14
16
|
#include <Ice/LoggerUtil.h>
|
|
15
17
|
#include <Ice/LocalException.h>
|
|
16
18
|
|
|
17
|
-
#ifdef ICE_USE_SECURE_TRANSPORT
|
|
18
|
-
|
|
19
19
|
using namespace std;
|
|
20
20
|
using namespace Ice;
|
|
21
|
+
using namespace IceInternal;
|
|
21
22
|
using namespace IceSSL;
|
|
23
|
+
using namespace IceSSL::SecureTransport;
|
|
22
24
|
|
|
23
25
|
namespace
|
|
24
26
|
{
|
|
@@ -96,7 +98,10 @@ socketRead(SSLConnectionRef connection, void* data, size_t* length)
|
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
bool
|
|
99
|
-
checkTrustResult(SecTrustRef trust,
|
|
101
|
+
checkTrustResult(SecTrustRef trust,
|
|
102
|
+
const IceSSL::SecureTransport::SSLEnginePtr& engine,
|
|
103
|
+
const IceSSL::InstancePtr& instance,
|
|
104
|
+
const string& host)
|
|
100
105
|
{
|
|
101
106
|
OSStatus err = noErr;
|
|
102
107
|
SecTrustResultType trustResult = kSecTrustResultOtherError;
|
|
@@ -104,7 +109,7 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
104
109
|
{
|
|
105
110
|
if((err = SecTrustSetAnchorCertificates(trust, engine->getCertificateAuthorities())))
|
|
106
111
|
{
|
|
107
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" +
|
|
112
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + sslErrorToString(err));
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
//
|
|
@@ -112,7 +117,26 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
112
117
|
//
|
|
113
118
|
if((err = SecTrustSetNetworkFetchAllowed(trust, false)))
|
|
114
119
|
{
|
|
115
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" +
|
|
120
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + sslErrorToString(err));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//
|
|
124
|
+
// Add SSL trust policy if we need to check the certificate name.
|
|
125
|
+
//
|
|
126
|
+
if(engine->getCheckCertName() && !host.empty())
|
|
127
|
+
{
|
|
128
|
+
UniqueRef<SecPolicyRef> policy(SecPolicyCreateSSL(false, toCFString(host)));
|
|
129
|
+
UniqueRef<CFArrayRef> policies;
|
|
130
|
+
if((err = SecTrustCopyPolicies(trust, &policies.get())))
|
|
131
|
+
{
|
|
132
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + sslErrorToString(err));
|
|
133
|
+
}
|
|
134
|
+
UniqueRef<CFMutableArrayRef> newPolicies(CFArrayCreateMutableCopy(kCFAllocatorDefault, 0, policies.get()));
|
|
135
|
+
CFArrayAppendValue(newPolicies.get(), policy.get());
|
|
136
|
+
if((err = SecTrustSetPolicies(trust, newPolicies.get())))
|
|
137
|
+
{
|
|
138
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + sslErrorToString(err));
|
|
139
|
+
}
|
|
116
140
|
}
|
|
117
141
|
|
|
118
142
|
//
|
|
@@ -120,7 +144,7 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
120
144
|
//
|
|
121
145
|
if((err = SecTrustEvaluate(trust, &trustResult)))
|
|
122
146
|
{
|
|
123
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" +
|
|
147
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + sslErrorToString(err));
|
|
124
148
|
}
|
|
125
149
|
}
|
|
126
150
|
|
|
@@ -147,7 +171,7 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
147
171
|
if(instance->traceLevel() >= 1)
|
|
148
172
|
{
|
|
149
173
|
ostringstream os;
|
|
150
|
-
os << "IceSSL: ignoring certificate verification failure
|
|
174
|
+
os << "IceSSL: ignoring certificate verification failure:\n" << trustResultDescription(trustResult);
|
|
151
175
|
instance->logger()->trace(instance->traceCategory(), os.str());
|
|
152
176
|
}
|
|
153
177
|
return false;
|
|
@@ -155,7 +179,7 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
155
179
|
else
|
|
156
180
|
{
|
|
157
181
|
ostringstream os;
|
|
158
|
-
os << "IceSSL: certificate verification failure
|
|
182
|
+
os << "IceSSL: certificate verification failure:\n" << trustResultDescription(trustResult);
|
|
159
183
|
string msg = os.str();
|
|
160
184
|
if(instance->traceLevel() >= 1)
|
|
161
185
|
{
|
|
@@ -169,49 +193,60 @@ checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, cons
|
|
|
169
193
|
}
|
|
170
194
|
|
|
171
195
|
IceInternal::NativeInfoPtr
|
|
172
|
-
IceSSL::TransceiverI::getNativeInfo()
|
|
196
|
+
IceSSL::SecureTransport::TransceiverI::getNativeInfo()
|
|
173
197
|
{
|
|
174
|
-
return
|
|
198
|
+
return _delegate->getNativeInfo();
|
|
175
199
|
}
|
|
176
200
|
|
|
177
201
|
IceInternal::SocketOperation
|
|
178
|
-
IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::Buffer& writeBuffer
|
|
202
|
+
IceSSL::SecureTransport::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::Buffer& writeBuffer)
|
|
179
203
|
{
|
|
180
|
-
|
|
181
|
-
if(status != IceInternal::SocketOperationNone)
|
|
204
|
+
if(!_connected)
|
|
182
205
|
{
|
|
183
|
-
|
|
206
|
+
IceInternal::SocketOperation status = _delegate->initialize(readBuffer, writeBuffer);
|
|
207
|
+
if(status != IceInternal::SocketOperationNone)
|
|
208
|
+
{
|
|
209
|
+
return status;
|
|
210
|
+
}
|
|
211
|
+
_connected = true;
|
|
184
212
|
}
|
|
185
213
|
|
|
214
|
+
//
|
|
215
|
+
// Limit the size of packets passed to SSLWrite/SSLRead to avoid
|
|
216
|
+
// blocking and holding too much memory.
|
|
217
|
+
//
|
|
218
|
+
_maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(_delegate->getNativeInfo()->fd()));
|
|
219
|
+
_maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(_delegate->getNativeInfo()->fd()));
|
|
220
|
+
|
|
186
221
|
OSStatus err = 0;
|
|
187
222
|
if(!_ssl)
|
|
188
223
|
{
|
|
189
224
|
//
|
|
190
225
|
// Initialize SSL context
|
|
191
226
|
//
|
|
192
|
-
_ssl
|
|
193
|
-
if((err = SSLSetIOFuncs(_ssl, socketRead, socketWrite)))
|
|
227
|
+
_ssl.reset(_engine->newContext(_incoming));
|
|
228
|
+
if((err = SSLSetIOFuncs(_ssl.get(), socketRead, socketWrite)))
|
|
194
229
|
{
|
|
195
230
|
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting IO functions failed\n" +
|
|
196
|
-
|
|
231
|
+
sslErrorToString(err));
|
|
197
232
|
}
|
|
198
233
|
|
|
199
|
-
if((err = SSLSetConnection(_ssl, reinterpret_cast<SSLConnectionRef>(this))))
|
|
234
|
+
if((err = SSLSetConnection(_ssl.get(), reinterpret_cast<SSLConnectionRef>(this))))
|
|
200
235
|
{
|
|
201
236
|
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SSL connection failed\n" +
|
|
202
|
-
|
|
237
|
+
sslErrorToString(err));
|
|
203
238
|
}
|
|
204
239
|
}
|
|
205
240
|
|
|
206
241
|
SSLSessionState state;
|
|
207
|
-
SSLGetSessionState(_ssl, &state);
|
|
242
|
+
SSLGetSessionState(_ssl.get(), &state);
|
|
208
243
|
|
|
209
244
|
//
|
|
210
245
|
// SSL Handshake
|
|
211
246
|
//
|
|
212
247
|
while(state == kSSLHandshake || state == kSSLIdle)
|
|
213
248
|
{
|
|
214
|
-
err = SSLHandshake(_ssl);
|
|
249
|
+
err = SSLHandshake(_ssl.get());
|
|
215
250
|
if(err == noErr)
|
|
216
251
|
{
|
|
217
252
|
break; // We're done!
|
|
@@ -224,8 +259,9 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
|
|
|
224
259
|
else if(err == errSSLPeerAuthCompleted)
|
|
225
260
|
{
|
|
226
261
|
assert(!_trust);
|
|
227
|
-
err = SSLCopyPeerTrust(_ssl, &_trust);
|
|
228
|
-
|
|
262
|
+
err = SSLCopyPeerTrust(_ssl.get(), &_trust.get());
|
|
263
|
+
|
|
264
|
+
if(_incoming && _engine->getVerifyPeer() == 1 && (err == errSSLBadCert || !_trust))
|
|
229
265
|
{
|
|
230
266
|
// This is expected if the client doesn't provide a certificate. With 10.10 and 10.11 errSSLBadCert
|
|
231
267
|
// is expected, the server is configured to verify but not require the client
|
|
@@ -234,7 +270,7 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
|
|
|
234
270
|
}
|
|
235
271
|
if(err == noErr)
|
|
236
272
|
{
|
|
237
|
-
_verified = checkTrustResult(_trust, _engine, _instance);
|
|
273
|
+
_verified = checkTrustResult(_trust.get(), _engine, _instance, _host);
|
|
238
274
|
continue; // Call SSLHandshake to resume the handsake.
|
|
239
275
|
}
|
|
240
276
|
// Let it fall through, this will raise a SecurityException with the SSLCopyPeerTrust error.
|
|
@@ -244,31 +280,38 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
|
|
|
244
280
|
throw ConnectionLostException(__FILE__, __LINE__, 0);
|
|
245
281
|
}
|
|
246
282
|
|
|
247
|
-
IceInternal::Address remoteAddr;
|
|
248
|
-
string desc = "<not available>";
|
|
249
|
-
if(IceInternal::fdToRemoteAddress(_stream->fd(), remoteAddr))
|
|
250
|
-
{
|
|
251
|
-
desc = IceInternal::addrToString(remoteAddr);
|
|
252
|
-
}
|
|
253
283
|
ostringstream os;
|
|
254
284
|
os << "IceSSL: ssl error occurred for new " << (_incoming ? "incoming" : "outgoing") << " connection:\n"
|
|
255
|
-
<<
|
|
285
|
+
<< _delegate->toString() << "\n" << sslErrorToString(err);
|
|
256
286
|
throw ProtocolException(__FILE__, __LINE__, os.str());
|
|
257
287
|
}
|
|
258
|
-
|
|
288
|
+
|
|
289
|
+
for(int i = 0, count = SecTrustGetCertificateCount(_trust.get()); i < count; ++i)
|
|
290
|
+
{
|
|
291
|
+
SecCertificateRef cert = SecTrustGetCertificateAtIndex(_trust.get(), i);
|
|
292
|
+
CFRetain(cert);
|
|
293
|
+
_certs.push_back(IceSSL::SecureTransport::Certificate::create(cert));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
assert(_ssl);
|
|
297
|
+
SSLCipherSuite cipher;
|
|
298
|
+
SSLGetNegotiatedCipher(_ssl.get(), &cipher);
|
|
299
|
+
_cipher = _engine->getCipherName(cipher);
|
|
300
|
+
|
|
301
|
+
_engine->verifyPeer(_host, ICE_DYNAMIC_CAST(ConnectionInfo, getInfo()), toString());
|
|
259
302
|
|
|
260
303
|
if(_instance->engine()->securityTraceLevel() >= 1)
|
|
261
304
|
{
|
|
262
|
-
|
|
305
|
+
|
|
263
306
|
Trace out(_instance->logger(), _instance->traceCategory());
|
|
264
307
|
out << "SSL summary for " << (_incoming ? "incoming" : "outgoing") << " connection\n";
|
|
265
308
|
|
|
266
309
|
SSLProtocol protocol;
|
|
267
|
-
SSLGetNegotiatedProtocolVersion(_ssl, &protocol);
|
|
310
|
+
SSLGetNegotiatedProtocolVersion(_ssl.get(), &protocol);
|
|
268
311
|
const string sslProtocolName = protocolName(protocol);
|
|
269
312
|
|
|
270
313
|
SSLCipherSuite cipher;
|
|
271
|
-
SSLGetNegotiatedCipher(_ssl, &cipher);
|
|
314
|
+
SSLGetNegotiatedCipher(_ssl.get(), &cipher);
|
|
272
315
|
const string sslCipherName = _engine->getCipherName(cipher);
|
|
273
316
|
|
|
274
317
|
if(sslCipherName.empty())
|
|
@@ -287,7 +330,7 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B
|
|
|
287
330
|
}
|
|
288
331
|
|
|
289
332
|
IceInternal::SocketOperation
|
|
290
|
-
IceSSL::TransceiverI::closing(bool initiator, const Ice::LocalException&)
|
|
333
|
+
IceSSL::SecureTransport::TransceiverI::closing(bool initiator, const Ice::LocalException&)
|
|
291
334
|
{
|
|
292
335
|
// If we are initiating the connection closure, wait for the peer
|
|
293
336
|
// to close the TCP/IP connection. Otherwise, close immediately.
|
|
@@ -295,30 +338,24 @@ IceSSL::TransceiverI::closing(bool initiator, const Ice::LocalException&)
|
|
|
295
338
|
}
|
|
296
339
|
|
|
297
340
|
void
|
|
298
|
-
IceSSL::TransceiverI::close()
|
|
341
|
+
IceSSL::SecureTransport::TransceiverI::close()
|
|
299
342
|
{
|
|
300
|
-
|
|
301
|
-
{
|
|
302
|
-
CFRelease(_trust);
|
|
303
|
-
_trust = 0;
|
|
304
|
-
}
|
|
305
|
-
|
|
343
|
+
_trust.reset(0);
|
|
306
344
|
if(_ssl)
|
|
307
345
|
{
|
|
308
|
-
SSLClose(_ssl);
|
|
309
|
-
CFRelease(_ssl);
|
|
310
|
-
_ssl = 0;
|
|
346
|
+
SSLClose(_ssl.get());
|
|
311
347
|
}
|
|
348
|
+
_ssl.reset(0);
|
|
312
349
|
|
|
313
|
-
|
|
350
|
+
_delegate->close();
|
|
314
351
|
}
|
|
315
352
|
|
|
316
353
|
IceInternal::SocketOperation
|
|
317
|
-
IceSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
354
|
+
IceSSL::SecureTransport::TransceiverI::write(IceInternal::Buffer& buf)
|
|
318
355
|
{
|
|
319
|
-
if(!
|
|
356
|
+
if(!_connected)
|
|
320
357
|
{
|
|
321
|
-
return
|
|
358
|
+
return _delegate->write(buf);
|
|
322
359
|
}
|
|
323
360
|
|
|
324
361
|
if(buf.i == buf.b.end())
|
|
@@ -333,8 +370,8 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
|
333
370
|
while(buf.i != buf.b.end())
|
|
334
371
|
{
|
|
335
372
|
size_t processed = 0;
|
|
336
|
-
OSStatus err = _buffered ? SSLWrite(_ssl, 0, 0, &processed) :
|
|
337
|
-
SSLWrite(_ssl, reinterpret_cast<const void*>(buf.i), packetSize, &processed);
|
|
373
|
+
OSStatus err = _buffered ? SSLWrite(_ssl.get(), 0, 0, &processed) :
|
|
374
|
+
SSLWrite(_ssl.get(), reinterpret_cast<const void*>(buf.i), packetSize, &processed);
|
|
338
375
|
|
|
339
376
|
if(err)
|
|
340
377
|
{
|
|
@@ -359,7 +396,7 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
|
359
396
|
//
|
|
360
397
|
if(err <= -9800 && err >= -9849)
|
|
361
398
|
{
|
|
362
|
-
throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during write:\n" +
|
|
399
|
+
throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during write:\n" + sslErrorToString(err));
|
|
363
400
|
}
|
|
364
401
|
|
|
365
402
|
errno = err;
|
|
@@ -393,11 +430,11 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
|
393
430
|
}
|
|
394
431
|
|
|
395
432
|
IceInternal::SocketOperation
|
|
396
|
-
IceSSL::TransceiverI::read(IceInternal::Buffer& buf
|
|
433
|
+
IceSSL::SecureTransport::TransceiverI::read(IceInternal::Buffer& buf)
|
|
397
434
|
{
|
|
398
|
-
if(!
|
|
435
|
+
if(!_connected)
|
|
399
436
|
{
|
|
400
|
-
return
|
|
437
|
+
return _delegate->read(buf);
|
|
401
438
|
}
|
|
402
439
|
|
|
403
440
|
if(buf.i == buf.b.end())
|
|
@@ -405,11 +442,13 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool& hasMoreData)
|
|
|
405
442
|
return IceInternal::SocketOperationNone;
|
|
406
443
|
}
|
|
407
444
|
|
|
445
|
+
_delegate->getNativeInfo()->ready(IceInternal::SocketOperationRead, false);
|
|
446
|
+
|
|
408
447
|
size_t packetSize = std::min(static_cast<size_t>(buf.b.end() - buf.i), _maxRecvPacketSize);
|
|
409
448
|
while(buf.i != buf.b.end())
|
|
410
449
|
{
|
|
411
450
|
size_t processed = 0;
|
|
412
|
-
OSStatus err = SSLRead(_ssl, reinterpret_cast<void*>(buf.i), packetSize, &processed);
|
|
451
|
+
OSStatus err = SSLRead(_ssl.get(), reinterpret_cast<void*>(buf.i), packetSize, &processed);
|
|
413
452
|
if(err)
|
|
414
453
|
{
|
|
415
454
|
if(err == errSSLWouldBlock)
|
|
@@ -430,7 +469,7 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool& hasMoreData)
|
|
|
430
469
|
//
|
|
431
470
|
if(err <= -9800 && err >= -9849)
|
|
432
471
|
{
|
|
433
|
-
throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during read:\n" +
|
|
472
|
+
throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during read:\n" + sslErrorToString(err));
|
|
434
473
|
}
|
|
435
474
|
|
|
436
475
|
errno = err;
|
|
@@ -453,143 +492,97 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool& hasMoreData)
|
|
|
453
492
|
}
|
|
454
493
|
|
|
455
494
|
//
|
|
456
|
-
// Check if there's still buffered data to read. In this case, set
|
|
495
|
+
// Check if there's still buffered data to read. In this case, set the read ready status.
|
|
457
496
|
//
|
|
458
497
|
size_t buffered = 0;
|
|
459
|
-
OSStatus err = SSLGetBufferedReadSize(_ssl, &buffered);
|
|
498
|
+
OSStatus err = SSLGetBufferedReadSize(_ssl.get(), &buffered);
|
|
460
499
|
if(err)
|
|
461
500
|
{
|
|
462
501
|
errno = err;
|
|
463
502
|
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
|
464
503
|
}
|
|
465
|
-
|
|
504
|
+
_delegate->getNativeInfo()->ready(IceInternal::SocketOperationRead, buffered > 0);
|
|
466
505
|
return IceInternal::SocketOperationNone;
|
|
467
506
|
}
|
|
468
507
|
|
|
469
508
|
string
|
|
470
|
-
IceSSL::TransceiverI::protocol() const
|
|
509
|
+
IceSSL::SecureTransport::TransceiverI::protocol() const
|
|
471
510
|
{
|
|
472
511
|
return _instance->protocol();
|
|
473
512
|
}
|
|
474
513
|
|
|
475
514
|
string
|
|
476
|
-
IceSSL::TransceiverI::toString() const
|
|
515
|
+
IceSSL::SecureTransport::TransceiverI::toString() const
|
|
477
516
|
{
|
|
478
|
-
return
|
|
517
|
+
return _delegate->toString();
|
|
479
518
|
}
|
|
480
519
|
|
|
481
520
|
string
|
|
482
|
-
IceSSL::TransceiverI::toDetailedString() const
|
|
521
|
+
IceSSL::SecureTransport::TransceiverI::toDetailedString() const
|
|
483
522
|
{
|
|
484
523
|
return toString();
|
|
485
524
|
}
|
|
486
525
|
|
|
487
526
|
Ice::ConnectionInfoPtr
|
|
488
|
-
IceSSL::TransceiverI::getInfo() const
|
|
489
|
-
{
|
|
490
|
-
NativeConnectionInfoPtr info = new NativeConnectionInfo();
|
|
491
|
-
fillConnectionInfo(info, info->nativeCerts);
|
|
492
|
-
return info;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
Ice::ConnectionInfoPtr
|
|
496
|
-
IceSSL::TransceiverI::getWSInfo(const Ice::HeaderDict& headers) const
|
|
527
|
+
IceSSL::SecureTransport::TransceiverI::getInfo() const
|
|
497
528
|
{
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
info->
|
|
529
|
+
IceSSL::ConnectionInfoPtr info = ICE_MAKE_SHARED(IceSSL::ConnectionInfo);
|
|
530
|
+
info->underlying = _delegate->getInfo();
|
|
531
|
+
info->incoming = _incoming;
|
|
532
|
+
info->adapterName = _adapterName;
|
|
533
|
+
info->cipher = _cipher;
|
|
534
|
+
info->certs = _certs;
|
|
535
|
+
info->verified = _verified;
|
|
501
536
|
return info;
|
|
502
537
|
}
|
|
503
538
|
|
|
504
539
|
void
|
|
505
|
-
IceSSL::TransceiverI::checkSendSize(const IceInternal::Buffer&)
|
|
540
|
+
IceSSL::SecureTransport::TransceiverI::checkSendSize(const IceInternal::Buffer&)
|
|
506
541
|
{
|
|
507
542
|
}
|
|
508
543
|
|
|
509
544
|
void
|
|
510
|
-
IceSSL::TransceiverI::setBufferSize(int rcvSize, int sndSize)
|
|
545
|
+
IceSSL::SecureTransport::TransceiverI::setBufferSize(int rcvSize, int sndSize)
|
|
511
546
|
{
|
|
512
|
-
|
|
547
|
+
_delegate->setBufferSize(rcvSize, sndSize);
|
|
513
548
|
}
|
|
514
549
|
|
|
515
|
-
IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance,
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
550
|
+
IceSSL::SecureTransport::TransceiverI::TransceiverI(const IceSSL::InstancePtr& instance,
|
|
551
|
+
const IceInternal::TransceiverPtr& delegate,
|
|
552
|
+
const string& hostOrAdapterName,
|
|
553
|
+
bool incoming) :
|
|
519
554
|
_instance(instance),
|
|
520
|
-
_engine(
|
|
555
|
+
_engine(IceSSL::SecureTransport::SSLEnginePtr::dynamicCast(instance->engine())),
|
|
521
556
|
_host(incoming ? "" : hostOrAdapterName),
|
|
522
557
|
_adapterName(incoming ? hostOrAdapterName : ""),
|
|
523
558
|
_incoming(incoming),
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
_trust(0),
|
|
559
|
+
_delegate(delegate),
|
|
560
|
+
_connected(false),
|
|
527
561
|
_verified(false),
|
|
528
562
|
_buffered(0)
|
|
529
563
|
{
|
|
530
|
-
//
|
|
531
|
-
// Limit the size of packets passed to SSLWrite/SSLRead to avoid
|
|
532
|
-
// blocking and holding too much memory.
|
|
533
|
-
//
|
|
534
|
-
_maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(_stream->fd()));
|
|
535
|
-
_maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(_stream->fd()));
|
|
536
564
|
}
|
|
537
565
|
|
|
538
|
-
IceSSL::TransceiverI::~TransceiverI()
|
|
566
|
+
IceSSL::SecureTransport::TransceiverI::~TransceiverI()
|
|
539
567
|
{
|
|
540
568
|
}
|
|
541
569
|
|
|
542
|
-
void
|
|
543
|
-
IceSSL::TransceiverI::fillConnectionInfo(const ConnectionInfoPtr& info, std::vector<CertificatePtr>& nativeCerts) const
|
|
544
|
-
{
|
|
545
|
-
IceInternal::fdToAddressAndPort(_stream->fd(), info->localAddress, info->localPort, info->remoteAddress,
|
|
546
|
-
info->remotePort);
|
|
547
|
-
if(_stream->fd() != INVALID_SOCKET)
|
|
548
|
-
{
|
|
549
|
-
info->rcvSize = IceInternal::getRecvBufferSize(_stream->fd());
|
|
550
|
-
info->sndSize = IceInternal::getSendBufferSize(_stream->fd());
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
if(_ssl)
|
|
554
|
-
{
|
|
555
|
-
for(int i = 0, count = SecTrustGetCertificateCount(_trust); i < count; ++i)
|
|
556
|
-
{
|
|
557
|
-
SecCertificateRef cert = SecTrustGetCertificateAtIndex(_trust, i);
|
|
558
|
-
CFRetain(cert);
|
|
559
|
-
|
|
560
|
-
CertificatePtr certificate = new Certificate(cert);
|
|
561
|
-
nativeCerts.push_back(certificate);
|
|
562
|
-
info->certs.push_back(certificate->encode());
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
SSLCipherSuite cipher;
|
|
566
|
-
SSLGetNegotiatedCipher(_ssl, &cipher);
|
|
567
|
-
info->cipher = _engine->getCipherName(cipher);
|
|
568
|
-
info->verified = _verified;
|
|
569
|
-
}
|
|
570
|
-
else
|
|
571
|
-
{
|
|
572
|
-
info->verified = false;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
info->adapterName = _adapterName;
|
|
576
|
-
info->incoming = _incoming;
|
|
577
|
-
}
|
|
578
|
-
|
|
579
570
|
OSStatus
|
|
580
|
-
IceSSL::TransceiverI::writeRaw(const char* data, size_t* length) const
|
|
571
|
+
IceSSL::SecureTransport::TransceiverI::writeRaw(const char* data, size_t* length) const
|
|
581
572
|
{
|
|
582
573
|
_flags &= ~SSLWantWrite;
|
|
583
574
|
|
|
584
575
|
try
|
|
585
576
|
{
|
|
586
|
-
|
|
587
|
-
|
|
577
|
+
IceInternal::Buffer buf(reinterpret_cast<const Ice::Byte*>(data), reinterpret_cast<const Ice::Byte*>(data) + *length);
|
|
578
|
+
IceInternal::SocketOperation op = _delegate->write(buf);
|
|
579
|
+
if(op == IceInternal::SocketOperationWrite)
|
|
588
580
|
{
|
|
589
|
-
*length =
|
|
581
|
+
*length = buf.i - buf.b.begin();
|
|
590
582
|
_flags |= SSLWantWrite;
|
|
591
583
|
return errSSLWouldBlock;
|
|
592
584
|
}
|
|
585
|
+
assert(op == IceInternal::SocketOperationNone);
|
|
593
586
|
}
|
|
594
587
|
catch(const Ice::ConnectionLostException&)
|
|
595
588
|
{
|
|
@@ -608,19 +601,21 @@ IceSSL::TransceiverI::writeRaw(const char* data, size_t* length) const
|
|
|
608
601
|
}
|
|
609
602
|
|
|
610
603
|
OSStatus
|
|
611
|
-
IceSSL::TransceiverI::readRaw(char* data, size_t* length) const
|
|
604
|
+
IceSSL::SecureTransport::TransceiverI::readRaw(char* data, size_t* length) const
|
|
612
605
|
{
|
|
613
606
|
_flags &= ~SSLWantRead;
|
|
614
607
|
|
|
615
608
|
try
|
|
616
609
|
{
|
|
617
|
-
|
|
618
|
-
|
|
610
|
+
IceInternal::Buffer buf(reinterpret_cast<Ice::Byte*>(data), reinterpret_cast<Ice::Byte*>(data) + *length);
|
|
611
|
+
IceInternal::SocketOperation op = _delegate->read(buf);
|
|
612
|
+
if(op == IceInternal::SocketOperationRead)
|
|
619
613
|
{
|
|
620
|
-
*length =
|
|
614
|
+
*length = buf.i - buf.b.begin();
|
|
621
615
|
_flags |= SSLWantRead;
|
|
622
616
|
return errSSLWouldBlock;
|
|
623
617
|
}
|
|
618
|
+
assert(op == IceInternal::SocketOperationNone);
|
|
624
619
|
}
|
|
625
620
|
catch(const Ice::ConnectionLostException&)
|
|
626
621
|
{
|
|
@@ -637,5 +632,3 @@ IceSSL::TransceiverI::readRaw(char* data, size_t* length) const
|
|
|
637
632
|
}
|
|
638
633
|
return noErr;
|
|
639
634
|
}
|
|
640
|
-
|
|
641
|
-
#endif
|