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
|
@@ -1,19 +1,19 @@
|
|
|
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.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#ifndef
|
|
11
|
-
#define
|
|
10
|
+
#ifndef ICESSL_SCHANNELTRANSCEIVER_I_H
|
|
11
|
+
#define ICESSL_SCHANNELTRANSCEIVER_I_H
|
|
12
12
|
|
|
13
13
|
#include <IceSSL/Config.h>
|
|
14
14
|
#include <IceSSL/InstanceF.h>
|
|
15
15
|
#include <IceSSL/Plugin.h>
|
|
16
|
-
#include <IceSSL/
|
|
16
|
+
#include <IceSSL/SChannelEngineF.h>
|
|
17
17
|
|
|
18
18
|
#include <Ice/Transceiver.h>
|
|
19
19
|
#include <Ice/Network.h>
|
|
@@ -21,8 +21,6 @@
|
|
|
21
21
|
#include <Ice/StreamSocket.h>
|
|
22
22
|
#include <Ice/WSTransceiver.h>
|
|
23
23
|
|
|
24
|
-
#ifdef ICE_USE_SCHANNEL
|
|
25
|
-
|
|
26
24
|
#ifdef SECURITY_WIN32
|
|
27
25
|
# undef SECURITY_WIN32
|
|
28
26
|
#endif
|
|
@@ -40,41 +38,38 @@
|
|
|
40
38
|
namespace IceSSL
|
|
41
39
|
{
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
namespace SChannel
|
|
42
|
+
{
|
|
45
43
|
|
|
46
|
-
class TransceiverI : public IceInternal::Transceiver
|
|
44
|
+
class TransceiverI : public IceInternal::Transceiver
|
|
47
45
|
{
|
|
48
46
|
public:
|
|
49
47
|
|
|
50
48
|
virtual IceInternal::NativeInfoPtr getNativeInfo();
|
|
51
49
|
|
|
52
|
-
virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer
|
|
50
|
+
virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer&);
|
|
53
51
|
virtual IceInternal::SocketOperation closing(bool, const Ice::LocalException&);
|
|
54
52
|
virtual void close();
|
|
55
53
|
virtual IceInternal::SocketOperation write(IceInternal::Buffer&);
|
|
56
|
-
virtual IceInternal::SocketOperation read(IceInternal::Buffer
|
|
54
|
+
virtual IceInternal::SocketOperation read(IceInternal::Buffer&);
|
|
57
55
|
#ifdef ICE_USE_IOCP
|
|
58
56
|
virtual bool startWrite(IceInternal::Buffer&);
|
|
59
57
|
virtual void finishWrite(IceInternal::Buffer&);
|
|
60
58
|
virtual void startRead(IceInternal::Buffer&);
|
|
61
|
-
virtual void finishRead(IceInternal::Buffer
|
|
59
|
+
virtual void finishRead(IceInternal::Buffer&);
|
|
62
60
|
#endif
|
|
63
61
|
virtual std::string protocol() const;
|
|
64
62
|
virtual std::string toString() const;
|
|
65
63
|
virtual std::string toDetailedString() const;
|
|
66
64
|
virtual Ice::ConnectionInfoPtr getInfo() const;
|
|
67
|
-
virtual Ice::ConnectionInfoPtr getWSInfo(const Ice::HeaderDict&) const;
|
|
68
65
|
virtual void checkSendSize(const IceInternal::Buffer&);
|
|
69
66
|
virtual void setBufferSize(int rcvSize, int sndSize);
|
|
70
67
|
|
|
71
68
|
private:
|
|
72
69
|
|
|
73
|
-
TransceiverI(const InstancePtr&, const IceInternal::
|
|
70
|
+
TransceiverI(const InstancePtr&, const IceInternal::TransceiverPtr&, const std::string&, bool);
|
|
74
71
|
virtual ~TransceiverI();
|
|
75
72
|
|
|
76
|
-
void fillConnectionInfo(const ConnectionInfoPtr&, std::vector<CertificatePtr>&) const;
|
|
77
|
-
|
|
78
73
|
IceInternal::SocketOperation sslHandshake();
|
|
79
74
|
|
|
80
75
|
size_t decryptMessage(IceInternal::Buffer&);
|
|
@@ -83,11 +78,11 @@ private:
|
|
|
83
78
|
bool writeRaw(IceInternal::Buffer&);
|
|
84
79
|
bool readRaw(IceInternal::Buffer&);
|
|
85
80
|
|
|
86
|
-
friend class
|
|
87
|
-
friend class AcceptorI;
|
|
81
|
+
friend class IceSSL::SChannel::SSLEngine;
|
|
88
82
|
|
|
89
83
|
enum State
|
|
90
84
|
{
|
|
85
|
+
StateNotInitialized,
|
|
91
86
|
StateHandshakeNotStarted,
|
|
92
87
|
StateHandshakeReadContinue,
|
|
93
88
|
StateHandshakeWriteContinue,
|
|
@@ -95,11 +90,11 @@ private:
|
|
|
95
90
|
};
|
|
96
91
|
|
|
97
92
|
const InstancePtr _instance;
|
|
98
|
-
const
|
|
93
|
+
const IceSSL::SChannel::SSLEnginePtr _engine;
|
|
99
94
|
const std::string _host;
|
|
100
95
|
const std::string _adapterName;
|
|
101
96
|
const bool _incoming;
|
|
102
|
-
const IceInternal::
|
|
97
|
+
const IceInternal::TransceiverPtr _delegate;
|
|
103
98
|
State _state;
|
|
104
99
|
|
|
105
100
|
//
|
|
@@ -123,12 +118,14 @@ private:
|
|
|
123
118
|
CredHandle _credentials;
|
|
124
119
|
bool _credentialsInitialized;
|
|
125
120
|
SecPkgContext_StreamSizes _sizes;
|
|
121
|
+
std::string _cipher;
|
|
122
|
+
std::vector<IceSSL::CertificatePtr> _certs;
|
|
126
123
|
bool _verified;
|
|
127
124
|
};
|
|
128
125
|
typedef IceUtil::Handle<TransceiverI> TransceiverIPtr;
|
|
129
126
|
|
|
130
|
-
}
|
|
127
|
+
} // SChannel namespace end
|
|
131
128
|
|
|
132
|
-
|
|
129
|
+
} // IceSSL namespace end
|
|
133
130
|
|
|
134
131
|
#endif
|
|
@@ -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,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include <IceSSL/SSLEngine.h>
|
|
11
11
|
#include <IceSSL/TrustManager.h>
|
|
12
|
+
#include <IceSSL/ConnectionInfo.h>
|
|
12
13
|
|
|
13
14
|
#include <IceUtil/StringUtil.h>
|
|
14
15
|
|
|
@@ -22,11 +23,13 @@
|
|
|
22
23
|
|
|
23
24
|
using namespace std;
|
|
24
25
|
using namespace Ice;
|
|
26
|
+
using namespace IceUtil;
|
|
25
27
|
using namespace IceSSL;
|
|
26
28
|
|
|
27
29
|
IceUtil::Shared* IceSSL::upCast(IceSSL::SSLEngine* p) { return p; }
|
|
28
30
|
|
|
29
31
|
IceSSL::SSLEngine::SSLEngine(const Ice::CommunicatorPtr& communicator) :
|
|
32
|
+
_initialized(false),
|
|
30
33
|
_communicator(communicator),
|
|
31
34
|
_logger(communicator->getLogger()),
|
|
32
35
|
_trustManager(new TrustManager(communicator))
|
|
@@ -80,6 +83,13 @@ IceSSL::SSLEngine::password(bool /*encrypting*/)
|
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
|
|
86
|
+
bool
|
|
87
|
+
IceSSL::SSLEngine::initialized() const
|
|
88
|
+
{
|
|
89
|
+
Mutex::Lock lock(_mutex);
|
|
90
|
+
return _initialized;
|
|
91
|
+
}
|
|
92
|
+
|
|
83
93
|
string
|
|
84
94
|
IceSSL::SSLEngine::getPassword() const
|
|
85
95
|
{
|
|
@@ -115,30 +125,29 @@ IceSSL::SSLEngine::initialize()
|
|
|
115
125
|
// VerifyPeer determines whether certificate validation failures abort a connection.
|
|
116
126
|
//
|
|
117
127
|
_verifyPeer = properties->getPropertyAsIntWithDefault(propPrefix + "VerifyPeer", 2);
|
|
118
|
-
|
|
128
|
+
|
|
119
129
|
if(_verifyPeer < 0 || _verifyPeer > 2)
|
|
120
130
|
{
|
|
121
131
|
PluginInitializationException ex(__FILE__, __LINE__);
|
|
122
132
|
ex.reason = "IceSSL: invalid value for " + propPrefix + "VerifyPeer";
|
|
123
133
|
throw ex;
|
|
124
134
|
}
|
|
125
|
-
|
|
135
|
+
|
|
126
136
|
_securityTraceLevel = properties->getPropertyAsInt("IceSSL.Trace.Security");
|
|
127
137
|
_securityTraceCategory = "Security";
|
|
128
138
|
}
|
|
129
139
|
|
|
130
140
|
void
|
|
131
|
-
IceSSL::SSLEngine::
|
|
141
|
+
IceSSL::SSLEngine::verifyPeerCertName(const string& address, const ConnectionInfoPtr& info)
|
|
132
142
|
{
|
|
133
|
-
const CertificateVerifierPtr verifier = getCertificateVerifier();
|
|
134
|
-
|
|
135
143
|
//
|
|
136
144
|
// For an outgoing connection, we compare the proxy address (if any) against
|
|
137
145
|
// fields in the server's certificate (if any).
|
|
138
146
|
//
|
|
139
|
-
if(!info->
|
|
147
|
+
if(_checkCertName && !info->certs.empty() && !address.empty())
|
|
140
148
|
{
|
|
141
|
-
const CertificatePtr cert = info->
|
|
149
|
+
const CertificatePtr cert = info->certs[0];
|
|
150
|
+
|
|
142
151
|
//
|
|
143
152
|
// Extract the IP addresses and the DNS names from the subject
|
|
144
153
|
// alternative names.
|
|
@@ -158,89 +167,56 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn
|
|
|
158
167
|
}
|
|
159
168
|
}
|
|
160
169
|
|
|
161
|
-
//
|
|
162
|
-
// Compare the peer's address against the common name.
|
|
163
|
-
//
|
|
164
170
|
bool certNameOK = false;
|
|
165
|
-
string dn;
|
|
166
171
|
string addrLower = IceUtilInternal::toLower(address);
|
|
167
|
-
|
|
168
|
-
DistinguishedName d = cert->getSubjectDN();
|
|
169
|
-
dn = IceUtilInternal::toLower(string(d));
|
|
170
|
-
string cn = "cn=" + addrLower;
|
|
171
|
-
string::size_type pos = dn.find(cn);
|
|
172
|
-
if(pos != string::npos)
|
|
173
|
-
{
|
|
174
|
-
//
|
|
175
|
-
// Ensure we match the entire common name.
|
|
176
|
-
//
|
|
177
|
-
certNameOK = (pos + cn.size() == dn.size()) || (dn[pos + cn.size()] == ',');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
172
|
+
bool isIpAddress = IceInternal::isIpAddress(address);
|
|
180
173
|
|
|
181
174
|
//
|
|
182
|
-
//
|
|
183
|
-
// values in the subject alternative name.
|
|
175
|
+
// If address is an IP address, compare it to the subject alternative names IP adddress
|
|
184
176
|
//
|
|
185
|
-
if(
|
|
177
|
+
if(isIpAddress)
|
|
186
178
|
{
|
|
187
179
|
certNameOK = find(ipAddresses.begin(), ipAddresses.end(), addrLower) != ipAddresses.end();
|
|
188
180
|
}
|
|
189
|
-
|
|
190
|
-
{
|
|
191
|
-
certNameOK = find(dnsNames.begin(), dnsNames.end(), addrLower) != dnsNames.end();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
//
|
|
195
|
-
// Log a message if the name comparison fails. If CheckCertName is defined,
|
|
196
|
-
// we also raise an exception to abort the connection. Don't log a message if
|
|
197
|
-
// CheckCertName is not defined and a verifier is present.
|
|
198
|
-
//
|
|
199
|
-
if(!certNameOK && (_checkCertName || (_securityTraceLevel >= 1 && !verifier)))
|
|
181
|
+
else
|
|
200
182
|
{
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
ostr << "certificate validation failure:\npeer certificate does not have `" << address
|
|
208
|
-
<< "' as its commonName or in its subjectAltName extension";
|
|
209
|
-
if(!dn.empty())
|
|
210
|
-
{
|
|
211
|
-
ostr << "\nSubject DN: " << dn;
|
|
212
|
-
}
|
|
213
|
-
if(!dnsNames.empty())
|
|
183
|
+
//
|
|
184
|
+
// If subjectAlt is empty compare it ot the subject CN, othewise
|
|
185
|
+
// compare it to the to the subject alt name dnsNames
|
|
186
|
+
//
|
|
187
|
+
if(dnsNames.empty())
|
|
214
188
|
{
|
|
215
|
-
|
|
216
|
-
|
|
189
|
+
DistinguishedName d = cert->getSubjectDN();
|
|
190
|
+
string dn = IceUtilInternal::toLower(string(d));
|
|
191
|
+
string cn = "cn=" + addrLower;
|
|
192
|
+
string::size_type pos = dn.find(cn);
|
|
193
|
+
if(pos != string::npos)
|
|
217
194
|
{
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
ostr << *p;
|
|
195
|
+
//
|
|
196
|
+
// Ensure we match the entire common name.
|
|
197
|
+
//
|
|
198
|
+
certNameOK = (pos + cn.size() == dn.size()) || (dn[pos + cn.size()] == ',');
|
|
223
199
|
}
|
|
224
200
|
}
|
|
225
|
-
|
|
201
|
+
else
|
|
226
202
|
{
|
|
227
|
-
|
|
228
|
-
for(vector<string>::const_iterator p = ipAddresses.begin(); p != ipAddresses.end(); ++p)
|
|
229
|
-
{
|
|
230
|
-
if(p != ipAddresses.begin())
|
|
231
|
-
{
|
|
232
|
-
ostr << ", ";
|
|
233
|
-
}
|
|
234
|
-
ostr << *p;
|
|
235
|
-
}
|
|
203
|
+
certNameOK = find(dnsNames.begin(), dnsNames.end(), addrLower) != dnsNames.end();
|
|
236
204
|
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if(!certNameOK)
|
|
208
|
+
{
|
|
209
|
+
ostringstream ostr;
|
|
210
|
+
ostr << "IceSSL: certificate validation failure: "
|
|
211
|
+
<< (isIpAddress ? "IP address mismatch" : "Hostname mismatch");
|
|
237
212
|
string msg = ostr.str();
|
|
238
213
|
if(_securityTraceLevel >= 1)
|
|
239
214
|
{
|
|
240
215
|
Trace out(_logger, _securityTraceCategory);
|
|
241
216
|
out << msg;
|
|
242
217
|
}
|
|
243
|
-
|
|
218
|
+
|
|
219
|
+
if(_verifyPeer > 0)
|
|
244
220
|
{
|
|
245
221
|
SecurityException ex(__FILE__, __LINE__);
|
|
246
222
|
ex.reason = msg;
|
|
@@ -248,7 +224,12 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn
|
|
|
248
224
|
}
|
|
249
225
|
}
|
|
250
226
|
}
|
|
227
|
+
}
|
|
251
228
|
|
|
229
|
+
void
|
|
230
|
+
IceSSL::SSLEngine::verifyPeer(const string& address, const ConnectionInfoPtr& info, const string& desc)
|
|
231
|
+
{
|
|
232
|
+
const CertificateVerifierPtr verifier = getCertificateVerifier();
|
|
252
233
|
if(_verifyDepthMax > 0 && static_cast<int>(info->certs.size()) > _verifyDepthMax)
|
|
253
234
|
{
|
|
254
235
|
ostringstream ostr;
|
|
@@ -258,19 +239,19 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn
|
|
|
258
239
|
string msg = ostr.str();
|
|
259
240
|
if(_securityTraceLevel >= 1)
|
|
260
241
|
{
|
|
261
|
-
_logger->trace(_securityTraceCategory, msg + "\n" +
|
|
242
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + desc);
|
|
262
243
|
}
|
|
263
244
|
SecurityException ex(__FILE__, __LINE__);
|
|
264
245
|
ex.reason = msg;
|
|
265
246
|
throw ex;
|
|
266
247
|
}
|
|
267
248
|
|
|
268
|
-
if(!_trustManager->verify(info))
|
|
249
|
+
if(!_trustManager->verify(info, desc))
|
|
269
250
|
{
|
|
270
251
|
string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by trust manager";
|
|
271
252
|
if(_securityTraceLevel >= 1)
|
|
272
253
|
{
|
|
273
|
-
_logger->trace(_securityTraceCategory, msg + "\n" +
|
|
254
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + desc);
|
|
274
255
|
}
|
|
275
256
|
SecurityException ex(__FILE__, __LINE__);
|
|
276
257
|
ex.reason = msg;
|
|
@@ -282,10 +263,34 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn
|
|
|
282
263
|
string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by certificate verifier";
|
|
283
264
|
if(_securityTraceLevel >= 1)
|
|
284
265
|
{
|
|
285
|
-
_logger->trace(_securityTraceCategory, msg + "\n" +
|
|
266
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + desc);
|
|
286
267
|
}
|
|
287
268
|
SecurityException ex(__FILE__, __LINE__);
|
|
288
269
|
ex.reason = msg;
|
|
289
270
|
throw ex;
|
|
290
271
|
}
|
|
291
272
|
}
|
|
273
|
+
|
|
274
|
+
bool
|
|
275
|
+
IceSSL::SSLEngine::getCheckCertName() const
|
|
276
|
+
{
|
|
277
|
+
return _checkCertName;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
int
|
|
281
|
+
IceSSL::SSLEngine::getVerifyPeer() const
|
|
282
|
+
{
|
|
283
|
+
return _verifyPeer;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
int
|
|
287
|
+
IceSSL::SSLEngine::securityTraceLevel() const
|
|
288
|
+
{
|
|
289
|
+
return _securityTraceLevel;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
std::string
|
|
293
|
+
IceSSL::SSLEngine::securityTraceCategory() const
|
|
294
|
+
{
|
|
295
|
+
return _securityTraceCategory;
|
|
296
|
+
}
|
|
@@ -1,50 +1,30 @@
|
|
|
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.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#ifndef
|
|
11
|
-
#define
|
|
10
|
+
#ifndef ICESSL_ENGINE_H
|
|
11
|
+
#define ICESSL_ENGINE_H
|
|
12
12
|
|
|
13
13
|
#include <IceSSL/Plugin.h>
|
|
14
14
|
#include <IceSSL/Util.h>
|
|
15
15
|
#include <IceSSL/SSLEngineF.h>
|
|
16
16
|
#include <IceSSL/TrustManagerF.h>
|
|
17
|
+
#include <IceSSL/InstanceF.h>
|
|
17
18
|
|
|
18
19
|
#include <IceUtil/Shared.h>
|
|
19
|
-
#include <IceUtil/Mutex.h>
|
|
20
20
|
#include <Ice/CommunicatorF.h>
|
|
21
21
|
#include <Ice/Network.h>
|
|
22
|
-
|
|
23
|
-
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
24
|
-
# include <Security/Security.h>
|
|
25
|
-
#elif defined(ICE_USE_SCHANNEL)
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
// SECURITY_WIN32 or SECURITY_KERNEL, must be defined before including security.h
|
|
29
|
-
// indicating who is compiling the code.
|
|
30
|
-
//
|
|
31
|
-
# ifdef SECURITY_WIN32
|
|
32
|
-
# undef SECURITY_WIN32
|
|
33
|
-
# endif
|
|
34
|
-
# ifdef SECURITY_KERNEL
|
|
35
|
-
# undef SECURITY_KERNEL
|
|
36
|
-
# endif
|
|
37
|
-
# define SECURITY_WIN32 1
|
|
38
|
-
# include <security.h>
|
|
39
|
-
# include <sspi.h>
|
|
40
|
-
# include <schannel.h>
|
|
41
|
-
# undef SECURITY_WIN32
|
|
42
|
-
#endif
|
|
22
|
+
#include <Ice/TransceiverF.h>
|
|
43
23
|
|
|
44
24
|
namespace IceSSL
|
|
45
25
|
{
|
|
46
26
|
|
|
47
|
-
class SSLEngine : public IceUtil::Shared
|
|
27
|
+
class ICESSL_API SSLEngine : public IceUtil::Shared
|
|
48
28
|
{
|
|
49
29
|
public:
|
|
50
30
|
|
|
@@ -62,17 +42,24 @@ public:
|
|
|
62
42
|
//
|
|
63
43
|
virtual void initialize() = 0;
|
|
64
44
|
|
|
65
|
-
virtual bool initialized() const
|
|
45
|
+
virtual bool initialized() const;
|
|
66
46
|
|
|
67
47
|
//
|
|
68
48
|
// Destroy the engine.
|
|
69
49
|
//
|
|
70
50
|
virtual void destroy() = 0;
|
|
71
51
|
|
|
52
|
+
//
|
|
53
|
+
// Create a transceiver using the engine specific implementation
|
|
54
|
+
//
|
|
55
|
+
virtual IceInternal::TransceiverPtr
|
|
56
|
+
createTransceiver(const InstancePtr&, const IceInternal::TransceiverPtr&, const std::string&, bool) = 0;
|
|
57
|
+
|
|
72
58
|
//
|
|
73
59
|
// Verify peer certificate
|
|
74
60
|
//
|
|
75
|
-
void verifyPeer(
|
|
61
|
+
virtual void verifyPeer(const std::string&, const ConnectionInfoPtr&, const std::string&);
|
|
62
|
+
void verifyPeerCertName(const std::string&, const ConnectionInfoPtr&);
|
|
76
63
|
|
|
77
64
|
CertificateVerifierPtr getCertificateVerifier() const;
|
|
78
65
|
PasswordPromptPtr getPasswordPrompt() const;
|
|
@@ -80,9 +67,15 @@ public:
|
|
|
80
67
|
std::string getPassword() const;
|
|
81
68
|
void setPassword(const std::string& password);
|
|
82
69
|
|
|
83
|
-
|
|
84
|
-
int
|
|
85
|
-
|
|
70
|
+
bool getCheckCertName() const;
|
|
71
|
+
int getVerifyPeer() const;
|
|
72
|
+
int securityTraceLevel() const;
|
|
73
|
+
std::string securityTraceCategory() const;
|
|
74
|
+
|
|
75
|
+
protected:
|
|
76
|
+
|
|
77
|
+
bool _initialized;
|
|
78
|
+
IceUtil::Mutex _mutex;
|
|
86
79
|
|
|
87
80
|
private:
|
|
88
81
|
|
|
@@ -101,162 +94,6 @@ private:
|
|
|
101
94
|
std::string _securityTraceCategory;
|
|
102
95
|
};
|
|
103
96
|
|
|
104
|
-
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
105
|
-
|
|
106
|
-
class SecureTransportEngine : public SSLEngine
|
|
107
|
-
{
|
|
108
|
-
public:
|
|
109
|
-
|
|
110
|
-
SecureTransportEngine(const Ice::CommunicatorPtr&);
|
|
111
|
-
|
|
112
|
-
virtual void initialize();
|
|
113
|
-
virtual bool initialized() const;
|
|
114
|
-
virtual void destroy();
|
|
115
|
-
|
|
116
|
-
SSLContextRef newContext(bool);
|
|
117
|
-
CFArrayRef getCertificateAuthorities() const;
|
|
118
|
-
std::string getCipherName(SSLCipherSuite) const;
|
|
119
|
-
|
|
120
|
-
private:
|
|
121
|
-
|
|
122
|
-
void parseCiphers(const std::string&);
|
|
123
|
-
SecKeychainRef openKeychain();
|
|
124
|
-
|
|
125
|
-
bool _initialized;
|
|
126
|
-
UniqueRef<CFArrayRef> _certificateAuthorities;
|
|
127
|
-
UniqueRef<CFArrayRef> _chain;
|
|
128
|
-
|
|
129
|
-
SSLProtocol _protocolVersionMax;
|
|
130
|
-
SSLProtocol _protocolVersionMin;
|
|
131
|
-
|
|
132
|
-
std::string _defaultDir;
|
|
133
|
-
|
|
134
|
-
std::vector<char> _dhParams;
|
|
135
|
-
|
|
136
|
-
std::vector<SSLCipherSuite> _ciphers;
|
|
137
|
-
IceUtil::Mutex _mutex;
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
#elif defined(ICE_USE_SCHANNEL)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
#if defined(__MINGW32__) || (defined(_MSC_VER) && (_MSC_VER <= 1500))
|
|
144
|
-
|
|
145
|
-
//
|
|
146
|
-
// Add some definitions missing from MinGW headers.
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
# ifndef CERT_TRUST_IS_EXPLICIT_DISTRUST
|
|
150
|
-
# define CERT_TRUST_IS_EXPLICIT_DISTRUST 0x04000000
|
|
151
|
-
# endif
|
|
152
|
-
|
|
153
|
-
# ifndef CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
|
|
154
|
-
# define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT 0x08000000
|
|
155
|
-
# endif
|
|
156
|
-
|
|
157
|
-
# ifndef SECBUFFER_ALERT
|
|
158
|
-
# define SECBUFFER_ALERT 17
|
|
159
|
-
# endif
|
|
160
|
-
|
|
161
|
-
# ifndef SCH_SEND_ROOT_CERT
|
|
162
|
-
# define SCH_SEND_ROOT_CERT 0x00040000
|
|
163
|
-
# endif
|
|
164
|
-
|
|
165
|
-
# ifndef SP_PROT_TLS1_1_SERVER
|
|
166
|
-
# define SP_PROT_TLS1_1_SERVER 0x00000100
|
|
167
|
-
# endif
|
|
168
|
-
|
|
169
|
-
# ifndef SP_PROT_TLS1_1_CLIENT
|
|
170
|
-
# define SP_PROT_TLS1_1_CLIENT 0x00000200
|
|
171
|
-
# endif
|
|
172
|
-
|
|
173
|
-
# ifndef SP_PROT_TLS1_2_SERVER
|
|
174
|
-
# define SP_PROT_TLS1_2_SERVER 0x00000400
|
|
175
|
-
# endif
|
|
176
|
-
|
|
177
|
-
# ifndef SP_PROT_TLS1_2_CLIENT
|
|
178
|
-
# define SP_PROT_TLS1_2_CLIENT 0x00000800
|
|
179
|
-
# endif
|
|
180
|
-
|
|
181
|
-
#endif
|
|
182
|
-
class SChannelEngine : public SSLEngine
|
|
183
|
-
{
|
|
184
|
-
public:
|
|
185
|
-
|
|
186
|
-
SChannelEngine(const Ice::CommunicatorPtr&);
|
|
187
|
-
|
|
188
|
-
//
|
|
189
|
-
// Setup the engine.
|
|
190
|
-
//
|
|
191
|
-
virtual void initialize();
|
|
192
|
-
|
|
193
|
-
virtual bool initialized() const;
|
|
194
|
-
|
|
195
|
-
//
|
|
196
|
-
// Destroy the engine.
|
|
197
|
-
//
|
|
198
|
-
virtual void destroy();
|
|
199
|
-
|
|
200
|
-
std::string getCipherName(ALG_ID) const;
|
|
201
|
-
|
|
202
|
-
CredHandle newCredentialsHandle(bool);
|
|
203
|
-
|
|
204
|
-
HCERTCHAINENGINE chainEngine() const;
|
|
205
|
-
|
|
206
|
-
private:
|
|
207
|
-
|
|
208
|
-
void parseCiphers(const std::string&);
|
|
209
|
-
|
|
210
|
-
bool _initialized;
|
|
211
|
-
std::vector<PCCERT_CONTEXT> _allCerts;
|
|
212
|
-
std::vector<PCCERT_CONTEXT> _importedCerts;
|
|
213
|
-
DWORD _protocols;
|
|
214
|
-
IceUtil::Mutex _mutex;
|
|
215
|
-
|
|
216
|
-
std::vector<HCERTSTORE> _stores;
|
|
217
|
-
HCERTSTORE _rootStore;
|
|
218
|
-
|
|
219
|
-
HCERTCHAINENGINE _chainEngine;
|
|
220
|
-
std::vector<ALG_ID> _ciphers;
|
|
221
|
-
};
|
|
222
|
-
#else // OpenSSL
|
|
223
|
-
class OpenSSLEngine : public SSLEngine
|
|
224
|
-
{
|
|
225
|
-
public:
|
|
226
|
-
|
|
227
|
-
OpenSSLEngine(const Ice::CommunicatorPtr&);
|
|
228
|
-
~OpenSSLEngine();
|
|
229
|
-
|
|
230
|
-
virtual void initialize();
|
|
231
|
-
virtual bool initialized() const;
|
|
232
|
-
virtual void destroy();
|
|
233
|
-
|
|
234
|
-
# ifndef OPENSSL_NO_DH
|
|
235
|
-
DH* dhParams(int);
|
|
236
|
-
# endif
|
|
237
|
-
SSL_CTX* context() const;
|
|
238
|
-
void context(SSL_CTX*);
|
|
239
|
-
std::string sslErrors() const;
|
|
240
|
-
|
|
241
|
-
private:
|
|
242
|
-
|
|
243
|
-
SSL_METHOD* getMethod(int);
|
|
244
|
-
void setOptions(int);
|
|
245
|
-
enum Protocols { SSLv3 = 1, TLSv1_0 = 2, TLSv1_1 = 4, TLSv1_2 = 8, TLSv1_3 = 16 };
|
|
246
|
-
int parseProtocols(const Ice::StringSeq&) const;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
bool _initialized;
|
|
250
|
-
SSL_CTX* _ctx;
|
|
251
|
-
std::string _defaultDir;
|
|
252
|
-
|
|
253
|
-
# ifndef OPENSSL_NO_DH
|
|
254
|
-
DHParamsPtr _dhParams;
|
|
255
|
-
# endif
|
|
256
|
-
IceUtil::Mutex _mutex;
|
|
257
|
-
};
|
|
258
|
-
#endif
|
|
259
|
-
|
|
260
97
|
}
|
|
261
98
|
|
|
262
99
|
#endif
|