zeroc-ice 3.6b1 → 3.6.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/{ext/ice/BZIP_LICENSE → BZIP2_LICENSE} +0 -0
- data/ICE_LICENSE +8 -14
- data/LICENSE +2 -1
- data/{ext/ice/MCPP_LICENSE → MCPP_LICENSE} +2 -9
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +1 -1
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +1 -22
- data/ext/Connection.cpp +125 -13
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +62 -3
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -1
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +8 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/ObjectFactory.cpp +1 -1
- data/ext/ObjectFactory.h +1 -1
- data/ext/Operation.cpp +1 -1
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +1 -1
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +1 -1
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +65 -17
- data/ext/Types.h +4 -1
- data/ext/Util.cpp +49 -58
- data/ext/Util.h +1 -1
- data/ext/extconf.rb +17 -15
- data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
- data/ext/ice/cpp/include/Ice/Application.h +1 -1
- data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
- data/ext/ice/cpp/include/Ice/BasicStream.h +1 -1
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +52 -0
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +25 -0
- data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +12 -4
- data/ext/ice/cpp/include/Ice/Communicator.h +12 -4
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/Config.h +13 -8
- data/ext/ice/cpp/include/Ice/Connection.h +41 -16
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/ConnectionF.h +12 -4
- data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
- data/ext/ice/cpp/include/Ice/Current.h +12 -4
- data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
- data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Endpoint.h +16 -6
- data/ext/ice/cpp/include/Ice/EndpointF.h +12 -4
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +12 -4
- data/ext/ice/cpp/include/Ice/Exception.h +3 -3
- data/ext/ice/cpp/include/Ice/FacetMap.h +12 -4
- data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
- data/ext/ice/cpp/include/Ice/Format.h +1 -1
- data/ext/ice/cpp/include/Ice/Functional.h +1 -1
- data/ext/ice/cpp/include/Ice/GCObject.h +5 -1
- data/ext/ice/cpp/include/Ice/Handle.h +1 -1
- data/ext/ice/cpp/include/Ice/Ice.h +4 -3
- data/ext/ice/cpp/include/Ice/Identity.h +13 -5
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +12 -4
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +12 -4
- data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +4 -2
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
- data/ext/ice/cpp/include/Ice/Instrumentation.h +12 -4
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +12 -4
- data/ext/ice/cpp/include/Ice/LocalException.h +12 -4
- data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/Locator.h +137 -129
- data/ext/ice/cpp/include/Ice/LocatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/Logger.h +12 -4
- data/ext/ice/cpp/include/Ice/LoggerF.h +12 -4
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
- data/ext/ice/cpp/include/Ice/Metrics.h +144 -136
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +35 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
- data/ext/ice/cpp/include/Ice/Object.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
- data/ext/ice/cpp/include/Ice/Outgoing.h +67 -39
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +31 -34
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +4 -4
- data/ext/ice/cpp/include/Ice/Plugin.h +12 -4
- data/ext/ice/cpp/include/Ice/PluginF.h +12 -4
- data/ext/ice/cpp/include/Ice/Process.h +36 -28
- data/ext/ice/cpp/include/Ice/ProcessF.h +12 -4
- data/ext/ice/cpp/include/Ice/Properties.h +12 -4
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +86 -78
- data/ext/ice/cpp/include/Ice/PropertiesF.h +12 -4
- data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
- data/ext/ice/cpp/include/Ice/Proxy.h +6 -2
- data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +137 -129
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Router.h +37 -29
- data/ext/ice/cpp/include/Ice/RouterF.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantLocator.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +1 -1
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +12 -4
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
- data/ext/ice/cpp/include/Ice/Stream.h +3 -5
- data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
- data/ext/ice/cpp/include/Ice/Version.h +14 -6
- data/ext/ice/cpp/include/IceSSL/Config.h +19 -1
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +61 -7
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +52 -5
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +2 -2
- data/ext/ice/cpp/include/IceSSL/Plugin.h +32 -26
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Atomic.h +186 -0
- data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Config.h +31 -20
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +9 -2
- data/ext/ice/cpp/include/IceUtil/Exception.h +4 -3
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +2 -2
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +8 -11
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +5 -1
- data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/SHA1.h +8 -26
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -5
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Shared.h +3 -37
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +7 -6
- data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
- data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
- data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
- data/ext/ice/cpp/include/Slice/JavaUtil.h +3 -1
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +127 -0
- data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/Parser.h +18 -12
- data/ext/ice/cpp/include/Slice/Preprocessor.h +6 -4
- data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/Util.h +20 -2
- data/ext/ice/cpp/src/Ice/ACM.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ACM.h +1 -1
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +7 -5
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +227 -0
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +59 -0
- data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -3
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +10 -4
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +82 -282
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +8 -21
- data/ext/ice/cpp/src/Ice/Communicator.cpp +11 -5
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +6 -6
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +42 -180
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +10 -19
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +25 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +17 -11
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +137 -51
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +18 -8
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +105 -391
- data/ext/ice/cpp/src/Ice/ConnectionI.h +25 -23
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +5 -29
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +3 -8
- data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Connector.h +1 -1
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/Ice/Current.cpp +10 -4
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
- 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/DeprecatedStringConverter.cpp +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +17 -11
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +19 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +13 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +33 -1
- data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +10 -4
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EventHandler.h +4 -1
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
- data/ext/ice/cpp/src/Ice/Exception.cpp +20 -11
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +10 -4
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -2
- data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
- data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +27 -15
- data/ext/ice/cpp/src/Ice/HttpParser.h +4 -6
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +7 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +2 -1
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
- data/ext/ice/cpp/src/Ice/Identity.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
- data/ext/ice/cpp/src/Ice/Incoming.cpp +22 -20
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
- data/ext/ice/cpp/src/Ice/Initialize.cpp +31 -5
- data/ext/ice/cpp/src/Ice/Instance.cpp +102 -59
- data/ext/ice/cpp/src/Ice/Instance.h +28 -2
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +20 -14
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
- data/ext/ice/cpp/src/Ice/LocalException.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Locator.cpp +83 -77
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +77 -69
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +11 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +10 -8
- data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Metrics.cpp +122 -116
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Network.cpp +63 -19
- data/ext/ice/cpp/src/Ice/Network.h +10 -3
- data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -5
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +9 -10
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +6 -5
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +209 -254
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +120 -106
- data/ext/ice/cpp/src/Ice/Plugin.cpp +12 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +21 -2
- data/ext/ice/cpp/src/Ice/Process.cpp +25 -19
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/Properties.cpp +11 -5
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +39 -33
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +12 -8
- data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +7 -7
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +9 -6
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +25 -7
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +32 -13
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
- data/ext/ice/cpp/src/Ice/Reference.cpp +101 -86
- data/ext/ice/cpp/src/Ice/Reference.h +16 -9
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPlugins.cpp +28 -0
- data/ext/ice/cpp/src/Ice/RegisterPlugins.h +25 -0
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +92 -86
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.h +4 -8
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +24 -16
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +5 -4
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +3 -3
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +16 -5
- data/ext/ice/cpp/src/Ice/RetryQueue.h +3 -2
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +27 -21
- data/ext/ice/cpp/src/Ice/RouterF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
- data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Selector.cpp +480 -1
- data/ext/ice/cpp/src/Ice/Selector.h +130 -1
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +29 -23
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +10 -4
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
- data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +30 -22
- data/ext/ice/cpp/src/Ice/StreamSocket.h +7 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +8 -8
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +21 -38
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +5 -6
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +29 -4
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -2
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
- 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 +1 -1
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +16 -7
- data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Transceiver.h +2 -1
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +13 -39
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -5
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +46 -10
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +3 -2
- data/ext/ice/cpp/src/Ice/Version.cpp +12 -6
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +6 -38
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +12 -1
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +31 -35
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +13 -1
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +66 -60
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +106 -100
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +76 -36
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +19 -6
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +452 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +732 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +520 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +36 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +8 -8
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +49 -47
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +13 -5
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +10 -38
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +4 -3
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +13 -5
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +107 -111
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +130 -47
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +11 -3
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +8 -14
- data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +238 -156
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +93 -66
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -3
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +32 -35
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +244 -360
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +59 -29
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +8 -4
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/Util.cpp +427 -620
- data/ext/ice/cpp/src/IceSSL/Util.h +72 -15
- data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
- data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +105 -96
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -1
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +9 -1
- 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 +1 -1
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +12 -25
- data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/SHA1.cpp +72 -10
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +3 -132
- data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Thread.cpp +16 -1
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +62 -55
- data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +8 -29
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +145 -172
- 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/ObjCUtil.cpp +1310 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Parser.cpp +65 -187
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +61 -9
- data/ext/ice/cpp/src/Slice/Python.cpp +36 -3
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
- data/ext/ice/cpp/src/Slice/Ruby.cpp +34 -3
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +8 -7
- data/ext/ice/cpp/src/Slice/Scanner.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Util.cpp +137 -30
- data/ext/ice/mcpp/LICENSE +29 -0
- data/ext/ice/mcpp/Makefile +60 -0
- data/ext/ice/mcpp/Makefile.mak +46 -0
- data/ext/ice/mcpp/README.md +30 -0
- data/ext/ice/mcpp/config.h +89 -0
- data/ext/ice/mcpp/configed.H +1 -146
- data/ext/ice/mcpp/directive.c +115 -410
- data/ext/ice/mcpp/eval.c +38 -377
- data/ext/ice/mcpp/expand.c +155 -852
- data/ext/ice/mcpp/internal.H +10 -44
- data/ext/ice/mcpp/main.c +6 -345
- data/ext/ice/mcpp/mbchar.c +17 -654
- data/ext/ice/mcpp/mcpp.gyp +62 -0
- data/ext/ice/mcpp/support.c +116 -943
- data/ext/ice/mcpp/system.H +0 -23
- data/ext/ice/mcpp/system.c +81 -2321
- data/ice.gemspec +3 -4
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +2 -2
- data/lib/Glacier2/PermissionsVerifier.rb +2 -2
- data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
- data/lib/Glacier2/Router.rb +2 -2
- data/lib/Glacier2/RouterF.rb +2 -2
- data/lib/Glacier2/SSLInfo.rb +2 -2
- data/lib/Glacier2/Session.rb +2 -2
- data/lib/Ice.rb +1 -1
- data/lib/Ice/BuiltinSequences.rb +2 -2
- data/lib/Ice/Communicator.rb +2 -2
- data/lib/Ice/CommunicatorF.rb +2 -2
- data/lib/Ice/Connection.rb +26 -14
- data/lib/Ice/ConnectionF.rb +2 -2
- data/lib/Ice/Current.rb +2 -2
- data/lib/Ice/Endpoint.rb +4 -2
- data/lib/Ice/EndpointF.rb +2 -2
- data/lib/Ice/EndpointTypes.rb +2 -2
- data/lib/Ice/FacetMap.rb +2 -2
- data/lib/Ice/Identity.rb +2 -2
- data/lib/Ice/ImplicitContext.rb +2 -2
- data/lib/Ice/ImplicitContextF.rb +2 -2
- data/lib/Ice/Instrumentation.rb +2 -2
- data/lib/Ice/InstrumentationF.rb +2 -2
- data/lib/Ice/LocalException.rb +2 -2
- data/lib/Ice/Locator.rb +2 -2
- data/lib/Ice/LocatorF.rb +2 -2
- data/lib/Ice/Logger.rb +2 -2
- data/lib/Ice/LoggerF.rb +2 -2
- data/lib/Ice/Metrics.rb +2 -2
- data/lib/Ice/ObjectAdapterF.rb +2 -2
- data/lib/Ice/ObjectFactory.rb +2 -2
- data/lib/Ice/ObjectFactoryF.rb +2 -2
- data/lib/Ice/Plugin.rb +2 -2
- data/lib/Ice/PluginF.rb +2 -2
- data/lib/Ice/Process.rb +2 -2
- data/lib/Ice/ProcessF.rb +2 -2
- data/lib/Ice/Properties.rb +2 -2
- data/lib/Ice/PropertiesAdmin.rb +2 -2
- data/lib/Ice/PropertiesF.rb +2 -2
- data/lib/Ice/Router.rb +2 -2
- data/lib/Ice/RouterF.rb +2 -2
- data/lib/Ice/SliceChecksumDict.rb +2 -2
- data/lib/Ice/Version.rb +2 -2
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +2 -2
- data/lib/IceGrid.rb +1 -1
- data/lib/IceGrid/Admin.rb +2 -2
- data/lib/IceGrid/Descriptor.rb +2 -2
- data/lib/IceGrid/Exception.rb +2 -2
- data/lib/IceGrid/FileParser.rb +2 -2
- data/lib/IceGrid/Locator.rb +2 -2
- data/lib/IceGrid/Observer.rb +2 -2
- data/lib/IceGrid/Query.rb +2 -2
- data/lib/IceGrid/Registry.rb +2 -2
- data/lib/IceGrid/Session.rb +2 -2
- data/lib/IceGrid/UserAccountMapper.rb +2 -2
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +52 -2
- data/lib/IcePatch2/FileServer.rb +33 -4
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +2 -2
- data/lib/IceStorm/Metrics.rb +2 -2
- data/slice/Freeze/BackgroundSaveEvictor.ice +2 -2
- data/slice/Freeze/CatalogData.ice +2 -2
- data/slice/Freeze/Connection.ice +2 -2
- data/slice/Freeze/ConnectionF.ice +2 -2
- data/slice/Freeze/DB.ice +2 -2
- data/slice/Freeze/Evictor.ice +2 -2
- data/slice/Freeze/EvictorF.ice +2 -2
- data/slice/Freeze/EvictorStorage.ice +2 -2
- data/slice/Freeze/Exception.ice +2 -2
- data/slice/Freeze/Transaction.ice +2 -2
- data/slice/Freeze/TransactionalEvictor.ice +2 -2
- data/slice/Glacier2/Metrics.ice +7 -6
- data/slice/Glacier2/PermissionsVerifier.ice +4 -3
- data/slice/Glacier2/PermissionsVerifierF.ice +3 -2
- data/slice/Glacier2/Router.ice +4 -3
- data/slice/Glacier2/RouterF.ice +3 -2
- data/slice/Glacier2/SSLInfo.ice +3 -2
- data/slice/Glacier2/Session.ice +12 -11
- data/slice/Ice/BuiltinSequences.ice +4 -3
- data/slice/Ice/Communicator.ice +22 -25
- data/slice/Ice/CommunicatorF.ice +3 -2
- data/slice/Ice/Connection.ice +39 -11
- data/slice/Ice/ConnectionF.ice +3 -2
- data/slice/Ice/Current.ice +4 -3
- data/slice/Ice/Endpoint.ice +11 -3
- data/slice/Ice/EndpointF.ice +3 -2
- data/slice/Ice/EndpointTypes.ice +3 -2
- data/slice/Ice/FacetMap.ice +3 -2
- data/slice/Ice/Identity.ice +3 -2
- data/slice/Ice/ImplicitContext.ice +3 -2
- data/slice/Ice/ImplicitContextF.ice +3 -2
- data/slice/Ice/Instrumentation.ice +4 -2
- data/slice/Ice/InstrumentationF.ice +4 -2
- data/slice/Ice/LocalException.ice +29 -10
- data/slice/Ice/Locator.ice +5 -3
- data/slice/Ice/LocatorF.ice +3 -2
- data/slice/Ice/Logger.ice +3 -2
- data/slice/Ice/LoggerF.ice +3 -2
- data/slice/Ice/Metrics.ice +15 -14
- data/slice/Ice/ObjectAdapter.ice +5 -4
- data/slice/Ice/ObjectAdapterF.ice +3 -2
- data/slice/Ice/ObjectFactory.ice +3 -2
- data/slice/Ice/ObjectFactoryF.ice +3 -2
- data/slice/Ice/Plugin.ice +3 -2
- data/slice/Ice/PluginF.ice +3 -2
- data/slice/Ice/Process.ice +3 -2
- data/slice/Ice/ProcessF.ice +3 -2
- data/slice/Ice/Properties.ice +3 -2
- data/slice/Ice/PropertiesAdmin.ice +3 -2
- data/slice/Ice/PropertiesF.ice +3 -2
- data/slice/Ice/RemoteLogger.ice +3 -2
- data/slice/Ice/Router.ice +3 -2
- data/slice/Ice/RouterF.ice +3 -2
- data/slice/Ice/ServantLocator.ice +3 -2
- data/slice/Ice/ServantLocatorF.ice +3 -2
- data/slice/Ice/SliceChecksumDict.ice +3 -2
- data/slice/Ice/Version.ice +3 -2
- data/slice/IceBox/IceBox.ice +2 -2
- data/slice/IceDiscovery/IceDiscovery.ice +2 -2
- data/slice/IceGrid/Admin.ice +49 -48
- data/slice/IceGrid/Descriptor.ice +3 -2
- data/slice/IceGrid/Exception.ice +6 -5
- data/slice/IceGrid/FileParser.ice +4 -3
- data/slice/IceGrid/Locator.ice +4 -3
- data/slice/IceGrid/Observer.ice +28 -27
- data/slice/IceGrid/PluginFacade.ice +3 -2
- data/slice/IceGrid/Query.ice +3 -2
- data/slice/IceGrid/Registry.ice +4 -3
- data/slice/IceGrid/Session.ice +9 -8
- data/slice/IceGrid/UserAccountMapper.ice +4 -3
- data/slice/{IceGrid/Discovery.ice → IceLocatorDiscovery/IceLocatorDiscovery.ice} +12 -14
- data/slice/IcePatch2/FileInfo.ice +31 -2
- data/slice/IcePatch2/FileServer.ice +63 -5
- data/slice/IceSSL/ConnectionInfo.ice +17 -2
- data/slice/IceSSL/EndpointInfo.ice +21 -3
- data/slice/IceStorm/IceStorm.ice +3 -2
- data/slice/IceStorm/Metrics.ice +4 -3
- metadata +27 -23
- data/ext/ice/cpp/include/Ice/Makefile +0 -26
- data/ext/ice/cpp/include/IceSSL/Makefile +0 -26
- data/ext/ice/cpp/include/IceUtil/Makefile +0 -26
- data/ext/ice/cpp/include/Slice/Makefile +0 -26
- data/ext/ice/cpp/src/Ice/Application.cpp +0 -760
- data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +0 -53
- data/ext/ice/cpp/src/Ice/Makefile +0 -190
- data/ext/ice/cpp/src/Ice/Service.cpp +0 -1897
- data/ext/ice/cpp/src/IceDiscovery/Makefile +0 -61
- data/ext/ice/cpp/src/IceSSL/Makefile +0 -82
- data/ext/ice/cpp/src/IceUtil/Makefile +0 -68
- data/ext/ice/cpp/src/Slice/Makefile +0 -65
- data/ext/ice/mcpp/config.h.Darwin +0 -227
- data/ext/ice/mcpp/config.h.Linux +0 -227
- data/ext/ice/mcpp/config.h.MINGW +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -53,39 +53,17 @@ IceSSL::EndpointI::EndpointI(const InstancePtr& instance, IceInternal::BasicStre
|
|
|
53
53
|
Ice::EndpointInfoPtr
|
|
54
54
|
IceSSL::EndpointI::getInfo() const
|
|
55
55
|
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
InfoI(const IceInternal::EndpointIPtr& endpoint) : _endpoint(endpoint)
|
|
61
|
-
{
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
virtual Ice::Short
|
|
65
|
-
type() const
|
|
66
|
-
{
|
|
67
|
-
return _endpoint->type();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
virtual bool
|
|
71
|
-
datagram() const
|
|
72
|
-
{
|
|
73
|
-
return _endpoint->datagram();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
virtual bool
|
|
77
|
-
secure() const
|
|
78
|
-
{
|
|
79
|
-
return _endpoint->secure();
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
private:
|
|
83
|
-
|
|
84
|
-
const IceInternal::EndpointIPtr _endpoint;
|
|
85
|
-
};
|
|
56
|
+
EndpointInfoPtr info = new IceInternal::InfoI<EndpointInfo>(const_cast<EndpointI*>(this));
|
|
57
|
+
fillEndpointInfo(info.get());
|
|
58
|
+
return info;
|
|
59
|
+
}
|
|
86
60
|
|
|
87
|
-
|
|
61
|
+
Ice::EndpointInfoPtr
|
|
62
|
+
IceSSL::EndpointI::getWSInfo(const string& resource) const
|
|
63
|
+
{
|
|
64
|
+
WSSEndpointInfoPtr info = new IceInternal::InfoI<WSSEndpointInfo>(const_cast<EndpointI*>(this));
|
|
88
65
|
fillEndpointInfo(info.get());
|
|
66
|
+
info->resource = resource;
|
|
89
67
|
return info;
|
|
90
68
|
}
|
|
91
69
|
|
|
@@ -133,12 +111,6 @@ IceSSL::EndpointI::datagram() const
|
|
|
133
111
|
return false;
|
|
134
112
|
}
|
|
135
113
|
|
|
136
|
-
bool
|
|
137
|
-
IceSSL::EndpointI::secure() const
|
|
138
|
-
{
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
114
|
IceInternal::TransceiverPtr
|
|
143
115
|
IceSSL::EndpointI::transceiver() const
|
|
144
116
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
#include <Ice/IPEndpointI.h>
|
|
14
14
|
#include <Ice/EndpointFactory.h>
|
|
15
|
+
#include <Ice/WSEndpoint.h>
|
|
15
16
|
#include <IceSSL/InstanceF.h>
|
|
16
17
|
#include <IceSSL/EndpointInfo.h>
|
|
17
18
|
#include <Ice/Network.h>
|
|
@@ -19,7 +20,7 @@
|
|
|
19
20
|
namespace IceSSL
|
|
20
21
|
{
|
|
21
22
|
|
|
22
|
-
class EndpointI : public IceInternal::IPEndpointI
|
|
23
|
+
class EndpointI : public IceInternal::IPEndpointI, public IceInternal::WSEndpointDelegate
|
|
23
24
|
{
|
|
24
25
|
public:
|
|
25
26
|
|
|
@@ -29,13 +30,13 @@ public:
|
|
|
29
30
|
EndpointI(const InstancePtr&, IceInternal::BasicStream*);
|
|
30
31
|
|
|
31
32
|
virtual Ice::EndpointInfoPtr getInfo() const;
|
|
33
|
+
virtual Ice::EndpointInfoPtr getWSInfo(const std::string&) const;
|
|
32
34
|
|
|
33
35
|
virtual Ice::Int timeout() const;
|
|
34
36
|
virtual IceInternal::EndpointIPtr timeout(Ice::Int) const;
|
|
35
37
|
virtual bool compress() const;
|
|
36
38
|
virtual IceInternal::EndpointIPtr compress(bool) const;
|
|
37
39
|
virtual bool datagram() const;
|
|
38
|
-
virtual bool secure() const;
|
|
39
40
|
|
|
40
41
|
virtual IceInternal::TransceiverPtr transceiver() const;
|
|
41
42
|
virtual IceInternal::AcceptorPtr acceptor(const std::string&) const;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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
|
-
// Ice version 3.
|
|
10
|
+
// Ice version 3.6.0
|
|
11
11
|
//
|
|
12
12
|
// <auto-generated>
|
|
13
13
|
//
|
|
@@ -28,8 +28,14 @@
|
|
|
28
28
|
#include <IceUtil/PopDisableWarnings.h>
|
|
29
29
|
|
|
30
30
|
#ifndef ICE_IGNORE_VERSION
|
|
31
|
-
# if ICE_INT_VERSION
|
|
32
|
-
# error Ice version mismatch
|
|
31
|
+
# if ICE_INT_VERSION / 100 != 306
|
|
32
|
+
# error Ice version mismatch!
|
|
33
|
+
# endif
|
|
34
|
+
# if ICE_INT_VERSION % 100 > 50
|
|
35
|
+
# error Beta header file detected
|
|
36
|
+
# endif
|
|
37
|
+
# if ICE_INT_VERSION % 100 < 0
|
|
38
|
+
# error Ice patch level mismatch!
|
|
33
39
|
# endif
|
|
34
40
|
#endif
|
|
35
41
|
|
|
@@ -38,4 +44,6 @@ namespace
|
|
|
38
44
|
|
|
39
45
|
}
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
ICE_SSL_API ::Ice::LocalObject* IceSSL::upCast(::IceSSL::EndpointInfo* p) { return p; }
|
|
48
|
+
|
|
49
|
+
ICE_SSL_API ::Ice::LocalObject* IceSSL::upCast(::IceSSL::WSSEndpointInfo* p) { return p; }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -22,7 +22,7 @@ using namespace IceSSL;
|
|
|
22
22
|
IceUtil::Shared* IceSSL::upCast(IceSSL::Instance* p) { return p; }
|
|
23
23
|
|
|
24
24
|
IceSSL::Instance::Instance(const SSLEnginePtr& engine, Short type, const string& protocol) :
|
|
25
|
-
ProtocolInstance(engine->communicator(), type, protocol),
|
|
25
|
+
ProtocolInstance(engine->communicator(), type, protocol, true),
|
|
26
26
|
_engine(engine)
|
|
27
27
|
{
|
|
28
28
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2015 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.
|
|
@@ -41,6 +41,7 @@ namespace
|
|
|
41
41
|
|
|
42
42
|
IceUtil::Mutex* staticMutex = 0;
|
|
43
43
|
int instanceCount = 0;
|
|
44
|
+
bool initOpenSSL = false;
|
|
44
45
|
IceUtil::Mutex* locks = 0;
|
|
45
46
|
|
|
46
47
|
class Init
|
|
@@ -131,7 +132,7 @@ IceSSL_opensslPasswordCallback(char* buf, int size, int flag, void* userData)
|
|
|
131
132
|
for(string::iterator i = passwd.begin(); i != passwd.end(); ++i)
|
|
132
133
|
{
|
|
133
134
|
*i = '\0';
|
|
134
|
-
}
|
|
135
|
+
}
|
|
135
136
|
|
|
136
137
|
return sz;
|
|
137
138
|
}
|
|
@@ -145,14 +146,6 @@ IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength)
|
|
|
145
146
|
}
|
|
146
147
|
# endif
|
|
147
148
|
|
|
148
|
-
int
|
|
149
|
-
IceSSL_opensslVerifyCallback(int ok, X509_STORE_CTX* ctx)
|
|
150
|
-
{
|
|
151
|
-
SSL* ssl = reinterpret_cast<SSL*>(X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx()));
|
|
152
|
-
OpenSSLEngine* p = reinterpret_cast<OpenSSLEngine*>(SSL_CTX_get_ex_data(ssl->ctx, 0));
|
|
153
|
-
return p->verifyCallback(ok, ssl, ctx);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
149
|
}
|
|
157
150
|
|
|
158
151
|
namespace
|
|
@@ -197,8 +190,8 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
|
|
|
197
190
|
// application should disable OpenSSL initialization in those components and
|
|
198
191
|
// perform the initialization itself.
|
|
199
192
|
//
|
|
200
|
-
|
|
201
|
-
if(
|
|
193
|
+
initOpenSSL = properties->getPropertyAsIntWithDefault("IceSSL.InitOpenSSL", 1) > 0;
|
|
194
|
+
if(initOpenSSL)
|
|
202
195
|
{
|
|
203
196
|
//
|
|
204
197
|
// Create the mutexes and set the callbacks.
|
|
@@ -243,7 +236,7 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
|
|
|
243
236
|
if(!randFiles.empty())
|
|
244
237
|
{
|
|
245
238
|
vector<string> files;
|
|
246
|
-
string defaultDir = properties->getProperty("IceSSL.DefaultDir");
|
|
239
|
+
const string defaultDir = properties->getProperty("IceSSL.DefaultDir");
|
|
247
240
|
|
|
248
241
|
if(!IceUtilInternal::splitString(randFiles, IceUtilInternal::pathsep, files))
|
|
249
242
|
{
|
|
@@ -253,15 +246,16 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
|
|
|
253
246
|
for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
|
|
254
247
|
{
|
|
255
248
|
string file = *p;
|
|
256
|
-
|
|
249
|
+
string resolved;
|
|
250
|
+
if(!checkPath(file, defaultDir, false, resolved))
|
|
257
251
|
{
|
|
258
252
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
259
253
|
"IceSSL: entropy data file not found:\n" + file);
|
|
260
254
|
}
|
|
261
|
-
if(!RAND_load_file(
|
|
255
|
+
if(!RAND_load_file(resolved.c_str(), 1024))
|
|
262
256
|
{
|
|
263
257
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
264
|
-
"IceSSL: unable to load entropy data from " +
|
|
258
|
+
"IceSSL: unable to load entropy data from " + resolved);
|
|
265
259
|
}
|
|
266
260
|
}
|
|
267
261
|
}
|
|
@@ -275,7 +269,7 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
|
|
|
275
269
|
{
|
|
276
270
|
if(RAND_egd(entropyDaemon.c_str()) <= 0)
|
|
277
271
|
{
|
|
278
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
272
|
+
throw PluginInitializationException(__FILE__, __LINE__,
|
|
279
273
|
"IceSSL: EGD failure using file " + entropyDaemon);
|
|
280
274
|
}
|
|
281
275
|
}
|
|
@@ -309,11 +303,11 @@ OpenSSLEngine::~OpenSSLEngine()
|
|
|
309
303
|
//
|
|
310
304
|
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(staticMutex);
|
|
311
305
|
|
|
312
|
-
if(--instanceCount == 0 &&
|
|
306
|
+
if(--instanceCount == 0 && initOpenSSL)
|
|
313
307
|
{
|
|
314
308
|
//
|
|
315
309
|
// NOTE: We can't destroy the locks here: threads which might have called openssl methods
|
|
316
|
-
// might access openssl locks upon termination (from DllMain/THREAD_DETACHED). Instead,
|
|
310
|
+
// might access openssl locks upon termination (from DllMain/THREAD_DETACHED). Instead,
|
|
317
311
|
// we release the locks in the ~Init() static destructor. See bug #4156.
|
|
318
312
|
//
|
|
319
313
|
//CRYPTO_set_locking_callback(0);
|
|
@@ -347,7 +341,7 @@ OpenSSLEngine::initialize()
|
|
|
347
341
|
try
|
|
348
342
|
{
|
|
349
343
|
SSLEngine::initialize();
|
|
350
|
-
|
|
344
|
+
|
|
351
345
|
const string propPrefix = "IceSSL.";
|
|
352
346
|
PropertiesPtr properties = communicator()->getProperties();
|
|
353
347
|
|
|
@@ -360,7 +354,7 @@ OpenSSLEngine::initialize()
|
|
|
360
354
|
defaultProtocols.push_back("tls1_1");
|
|
361
355
|
defaultProtocols.push_back("tls1_2");
|
|
362
356
|
|
|
363
|
-
const int protocols =
|
|
357
|
+
const int protocols =
|
|
364
358
|
parseProtocols(properties->getPropertyAsListWithDefault(propPrefix + "Protocols", defaultProtocols));
|
|
365
359
|
|
|
366
360
|
//
|
|
@@ -379,7 +373,7 @@ OpenSSLEngine::initialize()
|
|
|
379
373
|
// Check for a default directory. We look in this directory for
|
|
380
374
|
// files mentioned in the configuration.
|
|
381
375
|
//
|
|
382
|
-
string defaultDir = properties->getProperty(propPrefix + "DefaultDir");
|
|
376
|
+
const string defaultDir = properties->getProperty(propPrefix + "DefaultDir");
|
|
383
377
|
|
|
384
378
|
//
|
|
385
379
|
// If the configuration defines a password, or the application has supplied
|
|
@@ -403,28 +397,65 @@ OpenSSLEngine::initialize()
|
|
|
403
397
|
// Establish the location of CA certificates.
|
|
404
398
|
//
|
|
405
399
|
{
|
|
406
|
-
string
|
|
407
|
-
string
|
|
400
|
+
string path = properties->getProperty(propPrefix + "CAs");
|
|
401
|
+
string resolved;
|
|
408
402
|
const char* file = 0;
|
|
409
403
|
const char* dir = 0;
|
|
410
|
-
if(!
|
|
404
|
+
if(!path.empty())
|
|
411
405
|
{
|
|
412
|
-
if(
|
|
406
|
+
if(checkPath(path, defaultDir, false, resolved))
|
|
407
|
+
{
|
|
408
|
+
path = resolved;
|
|
409
|
+
file = path.c_str();
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
if(!file)
|
|
413
|
+
{
|
|
414
|
+
if(checkPath(path, defaultDir, true, resolved))
|
|
415
|
+
{
|
|
416
|
+
path = resolved;
|
|
417
|
+
dir = path.c_str();
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if(!file && !dir)
|
|
413
422
|
{
|
|
414
423
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
415
|
-
"IceSSL: CA certificate
|
|
424
|
+
"IceSSL: CA certificate path not found:\n" + path);
|
|
416
425
|
}
|
|
417
|
-
file = caFile.c_str();
|
|
418
426
|
}
|
|
419
|
-
|
|
427
|
+
|
|
428
|
+
if(!file && !dir)
|
|
420
429
|
{
|
|
421
|
-
|
|
430
|
+
// Deprecated properties
|
|
431
|
+
path = properties->getProperty(propPrefix + "CertAuthFile");
|
|
432
|
+
if(!path.empty())
|
|
422
433
|
{
|
|
423
|
-
|
|
424
|
-
|
|
434
|
+
if(!checkPath(path, defaultDir, false, resolved))
|
|
435
|
+
{
|
|
436
|
+
throw PluginInitializationException(__FILE__, __LINE__,
|
|
437
|
+
"IceSSL: CA certificate file not found:\n" + path);
|
|
438
|
+
}
|
|
439
|
+
path = resolved;
|
|
440
|
+
file = path.c_str();
|
|
441
|
+
}
|
|
442
|
+
else
|
|
443
|
+
{
|
|
444
|
+
path = properties->getProperty(propPrefix + "CertAuthDir");
|
|
445
|
+
if(!path.empty())
|
|
446
|
+
{
|
|
447
|
+
if(!checkPath(path, defaultDir, true, resolved))
|
|
448
|
+
{
|
|
449
|
+
throw PluginInitializationException(__FILE__, __LINE__,
|
|
450
|
+
"IceSSL: CA certificate directory not found:\n" +
|
|
451
|
+
path);
|
|
452
|
+
}
|
|
453
|
+
path = resolved;
|
|
454
|
+
dir = path.c_str();
|
|
455
|
+
}
|
|
425
456
|
}
|
|
426
|
-
dir = caDir.c_str();
|
|
427
457
|
}
|
|
458
|
+
|
|
428
459
|
if(file || dir)
|
|
429
460
|
{
|
|
430
461
|
//
|
|
@@ -436,7 +467,7 @@ OpenSSLEngine::initialize()
|
|
|
436
467
|
while(count < passwordRetryMax)
|
|
437
468
|
{
|
|
438
469
|
ERR_clear_error();
|
|
439
|
-
if((success = SSL_CTX_load_verify_locations(_ctx, file, dir))|| !passwordError())
|
|
470
|
+
if((success = SSL_CTX_load_verify_locations(_ctx, file, dir)) || !passwordError())
|
|
440
471
|
{
|
|
441
472
|
break;
|
|
442
473
|
}
|
|
@@ -460,6 +491,10 @@ OpenSSLEngine::initialize()
|
|
|
460
491
|
throw PluginInitializationException(__FILE__, __LINE__, msg);
|
|
461
492
|
}
|
|
462
493
|
}
|
|
494
|
+
else if(properties->getPropertyAsInt("IceSSL.UsePlatformCAs") > 0)
|
|
495
|
+
{
|
|
496
|
+
SSL_CTX_set_default_verify_paths(_ctx);
|
|
497
|
+
}
|
|
463
498
|
}
|
|
464
499
|
|
|
465
500
|
//
|
|
@@ -469,39 +504,41 @@ OpenSSLEngine::initialize()
|
|
|
469
504
|
string certFile = properties->getProperty(propPrefix + "CertFile");
|
|
470
505
|
string keyFile = properties->getProperty(propPrefix + "KeyFile");
|
|
471
506
|
bool keyLoaded = false;
|
|
472
|
-
|
|
507
|
+
|
|
473
508
|
vector<string>::size_type numCerts = 0;
|
|
474
509
|
if(!certFile.empty())
|
|
475
510
|
{
|
|
476
511
|
vector<string> files;
|
|
477
512
|
if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2)
|
|
478
513
|
{
|
|
479
|
-
PluginInitializationException ex(__FILE__, __LINE__,
|
|
514
|
+
PluginInitializationException ex(__FILE__, __LINE__,
|
|
480
515
|
"IceSSL: invalid value for " + propPrefix + "CertFile:\n" + certFile);
|
|
481
516
|
}
|
|
482
517
|
numCerts = files.size();
|
|
483
518
|
for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
|
|
484
519
|
{
|
|
485
520
|
string file = *p;
|
|
486
|
-
|
|
521
|
+
string resolved;
|
|
522
|
+
if(!checkPath(file, defaultDir, false, resolved))
|
|
487
523
|
{
|
|
488
524
|
PluginInitializationException ex(__FILE__, __LINE__,
|
|
489
525
|
"IceSSL: certificate file not found:\n" + file);
|
|
490
526
|
}
|
|
527
|
+
file = resolved;
|
|
491
528
|
//
|
|
492
529
|
// First we try to load the certificate using PKCS12 format if that fails
|
|
493
530
|
// we fallback to PEM format.
|
|
494
531
|
//
|
|
495
532
|
FILE* f = fopen(file.c_str(), "rb");
|
|
496
533
|
if(!f)
|
|
497
|
-
{
|
|
534
|
+
{
|
|
498
535
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
499
536
|
"IceSSL: unable to load certificate chain from file " + file + "\n" +
|
|
500
537
|
IceUtilInternal::lastErrorToString());
|
|
501
538
|
}
|
|
502
|
-
|
|
539
|
+
|
|
503
540
|
int success = 0;
|
|
504
|
-
|
|
541
|
+
|
|
505
542
|
PKCS12* p12 = d2i_PKCS12_fp(f, 0);
|
|
506
543
|
fclose(f);
|
|
507
544
|
if(p12)
|
|
@@ -509,7 +546,7 @@ OpenSSLEngine::initialize()
|
|
|
509
546
|
EVP_PKEY* key = 0;
|
|
510
547
|
X509* cert = 0;
|
|
511
548
|
STACK_OF(X509)* chain = 0;
|
|
512
|
-
|
|
549
|
+
|
|
513
550
|
int count = 0;
|
|
514
551
|
try
|
|
515
552
|
{
|
|
@@ -532,37 +569,41 @@ OpenSSLEngine::initialize()
|
|
|
532
569
|
}
|
|
533
570
|
break;
|
|
534
571
|
}
|
|
535
|
-
|
|
572
|
+
|
|
536
573
|
if(!cert || !SSL_CTX_use_certificate(_ctx, cert))
|
|
537
574
|
{
|
|
538
575
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
539
576
|
"IceSSL: unable to establish SSL certificate:\n" +
|
|
540
577
|
(cert ? sslErrors() : "certificate not found"));
|
|
541
578
|
}
|
|
542
|
-
|
|
579
|
+
|
|
543
580
|
if(!key || !SSL_CTX_use_PrivateKey(_ctx, key))
|
|
544
581
|
{
|
|
545
582
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
546
|
-
"IceSSL: unable to establish SSL private key:\n" +
|
|
583
|
+
"IceSSL: unable to establish SSL private key:\n" +
|
|
547
584
|
(key ? sslErrors() : "key not found"));
|
|
548
585
|
}
|
|
549
586
|
keyLoaded = true;
|
|
550
|
-
|
|
587
|
+
|
|
551
588
|
if(chain && sk_X509_num(chain))
|
|
552
589
|
{
|
|
553
|
-
|
|
590
|
+
// Pop each cert from the stack so we can free the stack later.
|
|
591
|
+
// The CTX destruction will take care of the certificates
|
|
592
|
+
X509 *c = 0;
|
|
593
|
+
while((c = sk_X509_pop(chain)) != 0)
|
|
554
594
|
{
|
|
555
|
-
if(!SSL_CTX_add_extra_chain_cert(_ctx,
|
|
595
|
+
if(!SSL_CTX_add_extra_chain_cert(_ctx, c))
|
|
556
596
|
{
|
|
557
597
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
558
598
|
"IceSSL: unable to add extra SSL certificate:\n" + sslErrors());
|
|
559
599
|
}
|
|
560
600
|
}
|
|
561
601
|
}
|
|
562
|
-
|
|
602
|
+
|
|
563
603
|
if(chain)
|
|
564
604
|
{
|
|
565
|
-
sk_X509_pop_free(
|
|
605
|
+
// This chain should now be empty. No need to call sk_X509_pop_free()
|
|
606
|
+
sk_X509_free(chain);
|
|
566
607
|
}
|
|
567
608
|
assert(key && cert);
|
|
568
609
|
EVP_PKEY_free(key);
|
|
@@ -578,12 +619,12 @@ OpenSSLEngine::initialize()
|
|
|
578
619
|
{
|
|
579
620
|
sk_X509_pop_free(chain, X509_free);
|
|
580
621
|
}
|
|
581
|
-
|
|
622
|
+
|
|
582
623
|
if(key)
|
|
583
624
|
{
|
|
584
625
|
EVP_PKEY_free(key);
|
|
585
626
|
}
|
|
586
|
-
|
|
627
|
+
|
|
587
628
|
if(cert)
|
|
588
629
|
{
|
|
589
630
|
X509_free(cert);
|
|
@@ -612,7 +653,7 @@ OpenSSLEngine::initialize()
|
|
|
612
653
|
count++;
|
|
613
654
|
}
|
|
614
655
|
}
|
|
615
|
-
|
|
656
|
+
|
|
616
657
|
if(!success)
|
|
617
658
|
{
|
|
618
659
|
string msg = "IceSSL: unable to load certificate chain from file " + file;
|
|
@@ -632,7 +673,7 @@ OpenSSLEngine::initialize()
|
|
|
632
673
|
}
|
|
633
674
|
}
|
|
634
675
|
}
|
|
635
|
-
|
|
676
|
+
|
|
636
677
|
if(keyFile.empty())
|
|
637
678
|
{
|
|
638
679
|
keyFile = certFile; // Assume the certificate file also contains the private key.
|
|
@@ -653,14 +694,14 @@ OpenSSLEngine::initialize()
|
|
|
653
694
|
for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
|
|
654
695
|
{
|
|
655
696
|
string file = *p;
|
|
656
|
-
|
|
697
|
+
string resolved;
|
|
698
|
+
if(!checkPath(file, defaultDir, false, resolved))
|
|
657
699
|
{
|
|
658
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
659
|
-
"IceSSL: key file not found:\n" + file);
|
|
700
|
+
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: key file not found:\n" + file);
|
|
660
701
|
}
|
|
702
|
+
file = resolved;
|
|
661
703
|
//
|
|
662
|
-
// The private key may be stored in an encrypted file, so handle
|
|
663
|
-
// password retries.
|
|
704
|
+
// The private key may be stored in an encrypted file, so handle password retries.
|
|
664
705
|
//
|
|
665
706
|
int count = 0;
|
|
666
707
|
int err = 0;
|
|
@@ -694,7 +735,7 @@ OpenSSLEngine::initialize()
|
|
|
694
735
|
}
|
|
695
736
|
keyLoaded = true;
|
|
696
737
|
}
|
|
697
|
-
|
|
738
|
+
|
|
698
739
|
if(keyLoaded && !SSL_CTX_check_private_key(_ctx))
|
|
699
740
|
{
|
|
700
741
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
@@ -729,14 +770,16 @@ OpenSSLEngine::initialize()
|
|
|
729
770
|
if(keyLength > 0)
|
|
730
771
|
{
|
|
731
772
|
string file = p->second;
|
|
732
|
-
|
|
773
|
+
string resolved;
|
|
774
|
+
if(!checkPath(file, defaultDir, false, resolved))
|
|
733
775
|
{
|
|
734
776
|
throw PluginInitializationException(__FILE__, __LINE__,
|
|
735
777
|
"IceSSL: DH parameter file not found:\n" + file);
|
|
736
778
|
}
|
|
779
|
+
file = resolved;
|
|
737
780
|
if(!_dhParams->add(keyLength, file))
|
|
738
781
|
{
|
|
739
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
782
|
+
throw PluginInitializationException(__FILE__, __LINE__,
|
|
740
783
|
"IceSSL: unable to read DH parameter file " + file);
|
|
741
784
|
}
|
|
742
785
|
}
|
|
@@ -744,7 +787,7 @@ OpenSSLEngine::initialize()
|
|
|
744
787
|
# endif
|
|
745
788
|
}
|
|
746
789
|
}
|
|
747
|
-
|
|
790
|
+
|
|
748
791
|
SSL_CTX_set_mode(_ctx, SSL_MODE_ENABLE_PARTIAL_WRITE);
|
|
749
792
|
}
|
|
750
793
|
|
|
@@ -794,7 +837,7 @@ OpenSSLEngine::initialize()
|
|
|
794
837
|
{
|
|
795
838
|
ostringstream os;
|
|
796
839
|
os << "enabling SSL ciphersuites:";
|
|
797
|
-
|
|
840
|
+
|
|
798
841
|
SSL* ssl = SSL_new(_ctx);
|
|
799
842
|
STACK_OF(SSL_CIPHER)* ciphers = SSL_get_ciphers(ssl);
|
|
800
843
|
if(ciphers)
|
|
@@ -807,30 +850,6 @@ OpenSSLEngine::initialize()
|
|
|
807
850
|
SSL_free(ssl);
|
|
808
851
|
getLogger()->trace(securityTraceCategory(), os.str());
|
|
809
852
|
}
|
|
810
|
-
|
|
811
|
-
//
|
|
812
|
-
// Determine whether a certificate is required from the peer.
|
|
813
|
-
//
|
|
814
|
-
{
|
|
815
|
-
int sslVerifyMode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT;;
|
|
816
|
-
switch(getVerifyPeer())
|
|
817
|
-
{
|
|
818
|
-
case 0:
|
|
819
|
-
sslVerifyMode = SSL_VERIFY_NONE;
|
|
820
|
-
break;
|
|
821
|
-
case 1:
|
|
822
|
-
sslVerifyMode = SSL_VERIFY_PEER;
|
|
823
|
-
break;
|
|
824
|
-
case 2:
|
|
825
|
-
sslVerifyMode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
|
|
826
|
-
break;
|
|
827
|
-
default:
|
|
828
|
-
{
|
|
829
|
-
assert(false);
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
SSL_CTX_set_verify(_ctx, sslVerifyMode, IceSSL_opensslVerifyCallback);
|
|
833
|
-
}
|
|
834
853
|
}
|
|
835
854
|
catch(...)
|
|
836
855
|
{
|
|
@@ -879,29 +898,6 @@ OpenSSLEngine::destroy()
|
|
|
879
898
|
}
|
|
880
899
|
}
|
|
881
900
|
|
|
882
|
-
int
|
|
883
|
-
OpenSSLEngine::verifyCallback(int ok, SSL* ssl, X509_STORE_CTX* c)
|
|
884
|
-
{
|
|
885
|
-
if(!ok && securityTraceLevel() >= 1)
|
|
886
|
-
{
|
|
887
|
-
X509* cert = X509_STORE_CTX_get_current_cert(c);
|
|
888
|
-
int err = X509_STORE_CTX_get_error(c);
|
|
889
|
-
char buf[256];
|
|
890
|
-
|
|
891
|
-
Trace out(getLogger(), securityTraceCategory());
|
|
892
|
-
out << "certificate verification failure\n";
|
|
893
|
-
|
|
894
|
-
X509_NAME_oneline(X509_get_issuer_name(cert), buf, static_cast<int>(sizeof(buf)));
|
|
895
|
-
out << "issuer = " << buf << '\n';
|
|
896
|
-
X509_NAME_oneline(X509_get_subject_name(cert), buf, static_cast<int>(sizeof(buf)));
|
|
897
|
-
out << "subject = " << buf << '\n';
|
|
898
|
-
out << "depth = " << X509_STORE_CTX_get_error_depth(c) << '\n';
|
|
899
|
-
out << "error = " << X509_verify_cert_error_string(err) << '\n';
|
|
900
|
-
out << IceInternal::fdToString(SSL_get_fd(ssl));
|
|
901
|
-
}
|
|
902
|
-
return ok;
|
|
903
|
-
}
|
|
904
|
-
|
|
905
901
|
# ifndef OPENSSL_NO_DH
|
|
906
902
|
DH*
|
|
907
903
|
OpenSSLEngine::dhParams(int keyLength)
|
|
@@ -943,7 +939,7 @@ OpenSSLEngine::parseProtocols(const StringSeq& protocols) const
|
|
|
943
939
|
return v;
|
|
944
940
|
}
|
|
945
941
|
|
|
946
|
-
SSL_METHOD*
|
|
942
|
+
SSL_METHOD*
|
|
947
943
|
OpenSSLEngine::getMethod(int /*protocols*/)
|
|
948
944
|
{
|
|
949
945
|
//
|