zeroc-ice 3.7.1 → 3.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/ICE_LICENSE +1 -1
- data/bin/slice2rb +1 -6
- data/ext/Communicator.cpp +7 -9
- data/ext/Communicator.h +1 -6
- data/ext/Config.h +28 -6
- data/ext/Connection.cpp +1 -10
- data/ext/Connection.h +1 -6
- data/ext/Endpoint.cpp +1 -10
- data/ext/Endpoint.h +1 -6
- data/ext/ImplicitContext.cpp +1 -6
- data/ext/ImplicitContext.h +1 -6
- data/ext/Init.cpp +1 -6
- data/ext/Logger.cpp +1 -6
- data/ext/Logger.h +1 -6
- data/ext/Operation.cpp +6 -11
- data/ext/Operation.h +1 -6
- data/ext/Properties.cpp +3 -8
- data/ext/Properties.h +1 -6
- data/ext/Proxy.cpp +21 -14
- data/ext/Proxy.h +1 -6
- data/ext/Slice.cpp +3 -18
- data/ext/Slice.h +1 -6
- data/ext/Types.cpp +74 -58
- data/ext/Types.h +1 -6
- data/ext/Util.cpp +61 -32
- data/ext/Util.h +108 -33
- data/ext/ValueFactoryManager.cpp +1 -6
- data/ext/ValueFactoryManager.h +1 -6
- data/ext/extconf.rb +5 -3
- data/ext/ice/cpp/include/Ice/Application.h +1 -6
- data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -6
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +1 -6
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -6
- data/ext/ice/cpp/include/Ice/Buffer.h +1 -6
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -6
- data/ext/ice/cpp/include/Ice/Comparable.h +1 -6
- data/ext/ice/cpp/include/Ice/Config.h +5 -6
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -6
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -6
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -6
- data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -6
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -6
- data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -6
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -6
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -6
- data/ext/ice/cpp/include/Ice/Exception.h +4 -9
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +3 -16
- data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -6
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +2 -7
- data/ext/ice/cpp/include/Ice/Format.h +1 -6
- data/ext/ice/cpp/include/Ice/Functional.h +2 -7
- data/ext/ice/cpp/include/Ice/GCObject.h +1 -6
- data/ext/ice/cpp/include/Ice/Handle.h +1 -6
- data/ext/ice/cpp/include/Ice/Ice.h +1 -6
- data/ext/ice/cpp/include/Ice/IconvStringConverter.h +11 -17
- data/ext/ice/cpp/include/Ice/Incoming.h +13 -8
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +11 -6
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
- data/ext/ice/cpp/include/Ice/Initialize.h +13 -7
- data/ext/ice/cpp/include/Ice/InputStream.h +6 -11
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +1 -6
- data/ext/ice/cpp/include/Ice/LocalObject.h +1 -6
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -6
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +9 -7
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -6
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +16 -7
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -6
- data/ext/ice/cpp/include/Ice/Object.h +6 -6
- data/ext/ice/cpp/include/Ice/ObjectF.h +1 -6
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
- data/ext/ice/cpp/include/Ice/Optional.h +21 -7
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +18 -8
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +6 -11
- data/ext/ice/cpp/include/Ice/Protocol.h +1 -6
- data/ext/ice/cpp/include/Ice/Proxy.h +50 -23
- data/ext/ice/cpp/include/Ice/ProxyF.h +1 -6
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -6
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +1 -6
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -6
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -6
- data/ext/ice/cpp/include/Ice/SHA1.h +1 -6
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -6
- data/ext/ice/cpp/include/Ice/Service.h +2 -7
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -6
- data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +2 -7
- data/ext/ice/cpp/include/Ice/StringConverter.h +1 -6
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
- data/ext/ice/cpp/include/Ice/UUID.h +1 -6
- data/ext/ice/cpp/include/Ice/UniquePtr.h +1 -6
- data/ext/ice/cpp/include/Ice/UniqueRef.h +1 -6
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -6
- data/ext/ice/cpp/include/Ice/Value.h +2 -7
- data/ext/ice/cpp/include/Ice/ValueF.h +1 -6
- data/ext/ice/cpp/include/IceSSL/Config.h +1 -6
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -6
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +1 -6
- data/ext/ice/cpp/include/IceSSL/Plugin.h +59 -6
- data/ext/ice/cpp/include/IceSSL/SChannel.h +5 -6
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +5 -6
- data/ext/ice/cpp/include/IceSSL/UWP.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Atomic.h +2 -7
- data/ext/ice/cpp/include/IceUtil/Cond.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Config.h +34 -20
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +5 -10
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -6
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +26 -38
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +5 -11
- data/ext/ice/cpp/include/IceUtil/Exception.h +130 -11
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Functional.h +5 -6
- data/ext/ice/cpp/include/IceUtil/Handle.h +1 -6
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -6
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Lock.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -9
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +5 -10
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Optional.h +9 -6
- data/ext/ice/cpp/include/IceUtil/Options.h +1 -6
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +18 -20
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -6
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +8 -6
- data/ext/ice/cpp/include/IceUtil/Random.h +37 -6
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -6
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -9
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +8 -7
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Shared.h +1 -6
- data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -6
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +2 -7
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Thread.h +1 -6
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Time.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Timer.h +1 -6
- data/ext/ice/cpp/include/IceUtil/UUID.h +1 -6
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
- data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +12 -17
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +35 -34
- data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/Connection.h +92 -57
- data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/Current.h +51 -57
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +73 -42
- data/ext/ice/cpp/include/generated/Ice/EndpointF.h +5 -10
- data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +8 -13
- data/ext/ice/cpp/include/generated/Ice/FacetMap.h +5 -10
- data/ext/ice/cpp/include/generated/Ice/Identity.h +7 -13
- data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +28 -27
- data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +76 -21
- data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +597 -272
- data/ext/ice/cpp/include/generated/Ice/Locator.h +135 -52
- data/ext/ice/cpp/include/generated/Ice/LocatorF.h +8 -13
- data/ext/ice/cpp/include/generated/Ice/Logger.h +10 -9
- data/ext/ice/cpp/include/generated/Ice/LoggerF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +175 -134
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +20 -19
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +16 -15
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +18 -11
- data/ext/ice/cpp/include/generated/Ice/PluginF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/Process.h +14 -13
- data/ext/ice/cpp/include/generated/Ice/ProcessF.h +6 -11
- data/ext/ice/cpp/include/generated/Ice/Properties.h +22 -21
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +20 -19
- data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +6 -11
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +39 -28
- data/ext/ice/cpp/include/generated/Ice/Router.h +43 -36
- data/ext/ice/cpp/include/generated/Ice/RouterF.h +6 -11
- data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +38 -37
- data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +4 -9
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +22 -15
- data/ext/ice/cpp/include/generated/Ice/Version.h +16 -23
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +12 -12
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +4 -9
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +10 -10
- data/ext/ice/cpp/src/Ice/ACM.cpp +14 -16
- data/ext/ice/cpp/src/Ice/ACM.h +1 -6
- data/ext/ice/cpp/src/Ice/ACMF.h +1 -6
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Acceptor.h +1 -6
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -6
- data/ext/ice/cpp/src/Ice/ArgVector.cpp +8 -13
- data/ext/ice/cpp/src/Ice/ArgVector.h +1 -6
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -7
- data/ext/ice/cpp/src/Ice/Base64.cpp +12 -18
- data/ext/ice/cpp/src/Ice/Base64.h +1 -6
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +2 -7
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -6
- data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -8
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +4 -9
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +2 -8
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -6
- data/ext/ice/cpp/src/Ice/Communicator.cpp +4 -9
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +23 -10
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +6 -7
- data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +5 -10
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -6
- data/ext/ice/cpp/src/Ice/Connection.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +146 -36
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +4 -6
- data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -6
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +34 -24
- data/ext/ice/cpp/src/Ice/ConnectionI.h +1 -6
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +2 -7
- data/ext/ice/cpp/src/Ice/Connector.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Connector.h +1 -6
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -6
- data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Current.cpp +4 -9
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -6
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +14 -6
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +7 -11
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +4 -9
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -6
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -6
- data/ext/ice/cpp/src/Ice/EndpointI.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -6
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +4 -9
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -6
- data/ext/ice/cpp/src/Ice/EventHandler.h +1 -6
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -6
- data/ext/ice/cpp/src/Ice/Exception.cpp +8 -13
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +4 -9
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -6
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -6
- data/ext/ice/cpp/src/Ice/GCObject.cpp +2 -7
- data/ext/ice/cpp/src/Ice/HashUtil.h +2 -7
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -6
- data/ext/ice/cpp/src/Ice/HttpParser.h +1 -6
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +14 -31
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +1 -6
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -6
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Identity.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +2 -8
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -6
- data/ext/ice/cpp/src/Ice/Incoming.cpp +11 -13
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -6
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -6
- data/ext/ice/cpp/src/Ice/Initialize.cpp +6 -11
- data/ext/ice/cpp/src/Ice/InputStream.cpp +55 -87
- data/ext/ice/cpp/src/Ice/Instance.cpp +58 -13
- data/ext/ice/cpp/src/Ice/Instance.h +3 -6
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +4 -9
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +2 -7
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -6
- data/ext/ice/cpp/src/Ice/LocalException.cpp +400 -9
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Locator.cpp +52 -27
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +25 -22
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +3 -8
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -6
- data/ext/ice/cpp/src/Ice/Logger.cpp +4 -9
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +8 -19
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -6
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +13 -12
- data/ext/ice/cpp/src/Ice/LoggerI.h +1 -6
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Metrics.cpp +12 -11
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +9 -9
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Network.cpp +70 -52
- data/ext/ice/cpp/src/Ice/Network.h +4 -9
- data/ext/ice/cpp/src/Ice/NetworkF.h +1 -6
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +2 -8
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -6
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -6
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +57 -0
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +40 -0
- data/ext/ice/cpp/src/Ice/Object.cpp +10 -14
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +22 -7
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -6
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +5 -10
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -6
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +6 -9
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +29 -61
- data/ext/ice/cpp/src/Ice/Plugin.cpp +4 -9
- data/ext/ice/cpp/src/Ice/PluginF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +1 -6
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +1 -6
- data/ext/ice/cpp/src/Ice/Process.cpp +8 -13
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/Properties.cpp +4 -9
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +11 -16
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +3 -8
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -6
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +13 -17
- data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -6
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +42 -8
- data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
- data/ext/ice/cpp/src/Ice/Protocol.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -6
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -6
- data/ext/ice/cpp/src/Ice/Proxy.cpp +9 -8
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +11 -7
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -6
- data/ext/ice/cpp/src/Ice/Reference.cpp +61 -33
- data/ext/ice/cpp/src/Ice/Reference.h +1 -6
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +2 -9
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -6
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -6
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +4 -8
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -6
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +20 -19
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -6
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -6
- data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -6
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +7 -9
- data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -6
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -6
- data/ext/ice/cpp/src/Ice/Router.cpp +15 -20
- data/ext/ice/cpp/src/Ice/RouterF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +3 -8
- data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -6
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -6
- data/ext/ice/cpp/src/Ice/SHA1.cpp +3 -8
- data/ext/ice/cpp/src/Ice/Selector.cpp +59 -25
- data/ext/ice/cpp/src/Ice/Selector.h +1 -6
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +7 -12
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -6
- data/ext/ice/cpp/src/Ice/SharedContext.h +1 -6
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +4 -9
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -6
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -6
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +15 -18
- data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -6
- data/ext/ice/cpp/src/Ice/StringUtil.h +1 -6
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +3 -8
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -6
- data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +66 -0
- data/ext/ice/cpp/src/Ice/SystemdJournalI.h +39 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +9 -7
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -6
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +6 -6
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -6
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +6 -6
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +1 -6
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +6 -6
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -6
- data/ext/ice/cpp/src/Ice/Thread.cpp +18 -14
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +69 -9
- data/ext/ice/cpp/src/Ice/ThreadPool.h +11 -12
- data/ext/ice/cpp/src/Ice/Timer.cpp +11 -6
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -6
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -6
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -6
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -6
- data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -6
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Transceiver.h +1 -6
- data/ext/ice/cpp/src/Ice/TransceiverF.h +3 -8
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +4 -6
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -6
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +12 -7
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +1 -6
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +33 -26
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -6
- data/ext/ice/cpp/src/Ice/Value.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +1 -7
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +1 -6
- data/ext/ice/cpp/src/Ice/Version.cpp +4 -9
- data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -6
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -6
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -6
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -6
- data/ext/ice/cpp/src/Ice/WSConnector.h +1 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +1 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +1 -6
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +18 -22
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +4 -9
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +497 -17
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +4 -7
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -6
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +5 -10
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -6
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -6
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -6
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +4 -9
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +22 -15
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +52 -17
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -6
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -6
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +8 -13
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -7
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/Instance.h +1 -6
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -6
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +15 -20
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +100 -46
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +3 -8
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -6
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +271 -147
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +3 -11
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -6
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +115 -6
- data/ext/ice/cpp/src/IceSSL/PluginI.h +11 -6
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -7
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -6
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +5 -10
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +69 -36
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +5 -8
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +5 -6
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +154 -38
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +8 -6
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +21 -14
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +3 -6
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -6
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +37 -31
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +44 -18
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +5 -6
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +4 -6
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +160 -99
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +7 -7
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +35 -25
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -6
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -6
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -6
- data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -6
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +5 -10
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -6
- data/ext/ice/cpp/src/IceSSL/Util.cpp +12 -11
- data/ext/ice/cpp/src/IceSSL/Util.h +1 -6
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -6
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +3 -6
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -7
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/Options.cpp +25 -15
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +41 -16
- data/ext/ice/cpp/src/IceUtil/Random.cpp +3 -8
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +2 -7
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +6 -11
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +45 -12
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/Time.cpp +12 -19
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +6 -11
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -6
- data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -6
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +17 -16
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +75 -73
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +3 -8
- data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -6
- data/ext/ice/cpp/src/Slice/Checksum.h +1 -6
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -6
- data/ext/ice/cpp/src/Slice/FileTracker.h +1 -6
- data/ext/ice/cpp/src/Slice/Grammar.cpp +249 -245
- data/ext/ice/cpp/src/Slice/Grammar.h +5 -5
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +89 -92
- data/ext/ice/cpp/src/Slice/JavaUtil.h +5 -10
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -6
- data/ext/ice/cpp/src/Slice/MD5.h +1 -6
- data/ext/ice/cpp/src/Slice/MD5I.cpp +8 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +10 -6
- data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
- data/ext/ice/cpp/src/Slice/Parser.cpp +153 -166
- data/ext/ice/cpp/src/Slice/Parser.h +33 -10
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +25 -17
- data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -7
- data/ext/ice/cpp/src/Slice/Python.cpp +22 -28
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +80 -49
- data/ext/ice/cpp/src/Slice/PythonUtil.h +1 -6
- data/ext/ice/cpp/src/Slice/Ruby.cpp +5 -10
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +13 -15
- data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -6
- data/ext/ice/cpp/src/Slice/Scanner.cpp +689 -437
- data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +12 -12
- data/ext/ice/cpp/src/Slice/Util.h +1 -6
- data/ext/ice/mcpp/CMakeLists.txt +80 -0
- data/ext/ice/mcpp/Makefile +2 -5
- data/ext/ice/mcpp/expand.c +6 -6
- data/ice.gemspec +2 -4
- data/lib/Glacier2.rb +1 -6
- data/lib/Glacier2/Metrics.rb +3 -8
- data/lib/Glacier2/PermissionsVerifier.rb +3 -8
- data/lib/Glacier2/PermissionsVerifierF.rb +3 -8
- data/lib/Glacier2/Router.rb +3 -8
- data/lib/Glacier2/RouterF.rb +3 -8
- data/lib/Glacier2/SSLInfo.rb +3 -8
- data/lib/Glacier2/Session.rb +3 -8
- data/lib/Ice.rb +1 -6
- data/lib/Ice/BuiltinSequences.rb +3 -8
- data/lib/Ice/Communicator.rb +3 -8
- data/lib/Ice/CommunicatorF.rb +3 -8
- data/lib/Ice/Connection.rb +3 -8
- data/lib/Ice/ConnectionF.rb +3 -8
- data/lib/Ice/Current.rb +3 -8
- data/lib/Ice/Endpoint.rb +3 -8
- data/lib/Ice/EndpointF.rb +3 -8
- data/lib/Ice/EndpointTypes.rb +3 -8
- data/lib/Ice/FacetMap.rb +3 -8
- data/lib/Ice/Identity.rb +3 -8
- data/lib/Ice/ImplicitContext.rb +3 -8
- data/lib/Ice/ImplicitContextF.rb +3 -8
- data/lib/Ice/Instrumentation.rb +3 -8
- data/lib/Ice/InstrumentationF.rb +3 -8
- data/lib/Ice/LocalException.rb +3 -8
- data/lib/Ice/Locator.rb +3 -8
- data/lib/Ice/LocatorF.rb +3 -8
- data/lib/Ice/Logger.rb +3 -8
- data/lib/Ice/LoggerF.rb +3 -8
- data/lib/Ice/Metrics.rb +3 -8
- data/lib/Ice/ObjectAdapter.rb +3 -8
- data/lib/Ice/ObjectAdapterF.rb +3 -8
- data/lib/Ice/ObjectFactory.rb +3 -8
- data/lib/Ice/Plugin.rb +3 -8
- data/lib/Ice/PluginF.rb +3 -8
- data/lib/Ice/Process.rb +3 -8
- data/lib/Ice/ProcessF.rb +3 -8
- data/lib/Ice/Properties.rb +3 -8
- data/lib/Ice/PropertiesAdmin.rb +3 -8
- data/lib/Ice/PropertiesF.rb +3 -8
- data/lib/Ice/RemoteLogger.rb +3 -8
- data/lib/Ice/Router.rb +3 -8
- data/lib/Ice/RouterF.rb +3 -8
- data/lib/Ice/ServantLocator.rb +3 -8
- data/lib/Ice/ServantLocatorF.rb +3 -8
- data/lib/Ice/SliceChecksumDict.rb +3 -8
- data/lib/Ice/ValueFactory.rb +3 -8
- data/lib/Ice/Version.rb +3 -8
- data/lib/IceBox.rb +1 -6
- data/lib/IceBox/IceBox.rb +3 -8
- data/lib/IceGrid.rb +1 -6
- data/lib/IceGrid/Admin.rb +3 -8
- data/lib/IceGrid/Descriptor.rb +3 -8
- data/lib/IceGrid/Exception.rb +3 -8
- data/lib/IceGrid/FileParser.rb +3 -8
- data/lib/IceGrid/PluginFacade.rb +3 -8
- data/lib/IceGrid/Registry.rb +3 -8
- data/lib/IceGrid/Session.rb +3 -8
- data/lib/IceGrid/UserAccountMapper.rb +3 -8
- data/lib/IcePatch2.rb +1 -6
- data/lib/IcePatch2/FileInfo.rb +3 -8
- data/lib/IcePatch2/FileServer.rb +3 -8
- data/lib/IceStorm.rb +1 -6
- data/lib/IceStorm/IceStorm.rb +3 -8
- data/lib/IceStorm/Metrics.rb +3 -8
- data/slice/Glacier2/Metrics.ice +14 -8
- data/slice/Glacier2/PermissionsVerifier.ice +11 -7
- data/slice/Glacier2/PermissionsVerifierF.ice +11 -7
- data/slice/Glacier2/Router.ice +12 -8
- data/slice/Glacier2/RouterF.ice +11 -7
- data/slice/Glacier2/SSLInfo.ice +11 -7
- data/slice/Glacier2/Session.ice +11 -7
- data/slice/Ice/BuiltinSequences.ice +13 -7
- data/slice/Ice/Communicator.ice +92 -44
- data/slice/Ice/CommunicatorF.ice +13 -7
- data/slice/Ice/Connection.ice +35 -29
- data/slice/Ice/ConnectionF.ice +13 -7
- data/slice/Ice/Current.ice +29 -23
- data/slice/Ice/Endpoint.ice +22 -19
- data/slice/Ice/EndpointF.ice +14 -8
- data/slice/Ice/EndpointTypes.ice +15 -9
- data/slice/Ice/FacetMap.ice +14 -8
- data/slice/Ice/Identity.ice +13 -7
- data/slice/Ice/ImplicitContext.ice +28 -22
- data/slice/Ice/ImplicitContextF.ice +12 -7
- data/slice/Ice/Instrumentation.ice +19 -13
- data/slice/Ice/InstrumentationF.ice +13 -7
- data/slice/Ice/LocalException.ice +35 -29
- data/slice/Ice/Locator.ice +13 -7
- data/slice/Ice/LocatorF.ice +13 -7
- data/slice/Ice/Logger.ice +19 -13
- data/slice/Ice/LoggerF.ice +13 -7
- data/slice/Ice/Metrics.ice +26 -18
- data/slice/Ice/ObjectAdapter.ice +63 -45
- data/slice/Ice/ObjectAdapterF.ice +13 -7
- data/slice/Ice/ObjectFactory.ice +20 -12
- data/slice/Ice/Plugin.ice +19 -10
- data/slice/Ice/PluginF.ice +17 -7
- data/slice/Ice/Process.ice +13 -7
- data/slice/Ice/ProcessF.ice +13 -7
- data/slice/Ice/Properties.ice +35 -24
- data/slice/Ice/PropertiesAdmin.ice +13 -7
- data/slice/Ice/PropertiesF.ice +13 -7
- data/slice/Ice/RemoteLogger.ice +13 -7
- data/slice/Ice/Router.ice +14 -8
- data/slice/Ice/RouterF.ice +13 -7
- data/slice/Ice/ServantLocator.ice +31 -23
- data/slice/Ice/ServantLocatorF.ice +13 -7
- data/slice/Ice/SliceChecksumDict.ice +13 -7
- data/slice/Ice/ValueFactory.ice +22 -15
- data/slice/Ice/Version.ice +13 -7
- data/slice/IceBT/ConnectionInfo.ice +12 -7
- data/slice/IceBT/EndpointInfo.ice +13 -8
- data/slice/IceBT/Types.ice +12 -7
- data/slice/IceBox/IceBox.ice +29 -9
- data/slice/IceDiscovery/IceDiscovery.ice +68 -7
- data/slice/IceGrid/Admin.ice +41 -35
- data/slice/IceGrid/Descriptor.ice +15 -10
- data/slice/IceGrid/Exception.ice +15 -10
- data/slice/IceGrid/FileParser.ice +14 -8
- data/slice/IceGrid/PluginFacade.ice +17 -11
- data/slice/IceGrid/Registry.ice +13 -7
- data/slice/IceGrid/Session.ice +18 -12
- data/slice/IceGrid/UserAccountMapper.ice +16 -10
- data/slice/IceIAP/ConnectionInfo.ice +11 -8
- data/slice/IceIAP/EndpointInfo.ice +11 -8
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +12 -7
- data/slice/IcePatch2/FileInfo.ice +12 -7
- data/slice/IcePatch2/FileServer.ice +13 -8
- data/slice/IceSSL/ConnectionInfo.ice +16 -9
- data/slice/IceSSL/ConnectionInfoF.ice +14 -8
- data/slice/IceSSL/EndpointInfo.ice +14 -8
- data/slice/IceStorm/IceStorm.ice +17 -11
- data/slice/IceStorm/Metrics.ice +12 -8
- metadata +8 -4
@@ -1,11 +1,6 @@
|
|
1
|
-
// **********************************************************************
|
2
1
|
//
|
3
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) ZeroC, Inc. All rights reserved.
|
4
3
|
//
|
5
|
-
// This copy of Ice is licensed to you under the terms described in the
|
6
|
-
// ICE_LICENSE file included in this distribution.
|
7
|
-
//
|
8
|
-
// **********************************************************************
|
9
4
|
|
10
5
|
#ifndef ICESSL_OPENSSL_ENGINE_H
|
11
6
|
#define ICESSL_OPENSSL_ENGINE_H
|
@@ -31,7 +26,6 @@ public:
|
|
31
26
|
|
32
27
|
virtual void initialize();
|
33
28
|
virtual void destroy();
|
34
|
-
virtual void verifyPeer(const std::string&, const IceSSL::ConnectionInfoPtr&, const std::string&);
|
35
29
|
virtual IceInternal::TransceiverPtr
|
36
30
|
createTransceiver(const IceSSL::InstancePtr&, const IceInternal::TransceiverPtr&, const std::string&, bool);
|
37
31
|
|
@@ -45,9 +39,10 @@ public:
|
|
45
39
|
|
46
40
|
private:
|
47
41
|
|
42
|
+
void cleanup();
|
48
43
|
SSL_METHOD* getMethod(int);
|
49
44
|
void setOptions(int);
|
50
|
-
enum Protocols { SSLv3 =
|
45
|
+
enum Protocols { SSLv3 = 1, TLSv1_0 = 2, TLSv1_1 = 4, TLSv1_2 = 8, TLSv1_3 = 16 };
|
51
46
|
int parseProtocols(const Ice::StringSeq&) const;
|
52
47
|
|
53
48
|
SSL_CTX* _ctx;
|
@@ -1,11 +1,6 @@
|
|
1
|
-
// **********************************************************************
|
2
1
|
//
|
3
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) ZeroC, Inc. All rights reserved.
|
4
3
|
//
|
5
|
-
// This copy of Ice is licensed to you under the terms described in the
|
6
|
-
// ICE_LICENSE file included in this distribution.
|
7
|
-
//
|
8
|
-
// **********************************************************************
|
9
4
|
|
10
5
|
#ifndef ICESSL_OPENSSL_ENGINE_F_H
|
11
6
|
#define ICESSL_OPENSSL_ENGINE_F_H
|
@@ -1,11 +1,6 @@
|
|
1
|
-
// **********************************************************************
|
2
1
|
//
|
3
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) ZeroC, Inc. All rights reserved.
|
4
3
|
//
|
5
|
-
// This copy of Ice is licensed to you under the terms described in the
|
6
|
-
// ICE_LICENSE file included in this distribution.
|
7
|
-
//
|
8
|
-
// **********************************************************************
|
9
4
|
|
10
5
|
#include <IceSSL/PluginI.h>
|
11
6
|
#include <IceSSL/OpenSSL.h>
|
@@ -1,11 +1,6 @@
|
|
1
|
-
// **********************************************************************
|
2
1
|
//
|
3
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) ZeroC, Inc. All rights reserved.
|
4
3
|
//
|
5
|
-
// This copy of Ice is licensed to you under the terms described in the
|
6
|
-
// ICE_LICENSE file included in this distribution.
|
7
|
-
//
|
8
|
-
// **********************************************************************
|
9
4
|
|
10
5
|
#include <IceSSL/OpenSSLTransceiverI.h>
|
11
6
|
#include <IceSSL/OpenSSLEngine.h>
|
@@ -15,8 +10,10 @@
|
|
15
10
|
|
16
11
|
#include <IceSSL/ConnectionInfo.h>
|
17
12
|
#include <IceSSL/Instance.h>
|
13
|
+
#include <IceSSL/PluginI.h>
|
18
14
|
#include <IceSSL/SSLEngine.h>
|
19
15
|
#include <IceSSL/Util.h>
|
16
|
+
|
20
17
|
#include <Ice/Communicator.h>
|
21
18
|
#include <Ice/LoggerUtil.h>
|
22
19
|
#include <Ice/Buffer.h>
|
@@ -77,6 +74,103 @@ IceSSL_opensslVerifyCallback(int ok, X509_STORE_CTX* ctx)
|
|
77
74
|
|
78
75
|
}
|
79
76
|
|
77
|
+
namespace
|
78
|
+
{
|
79
|
+
|
80
|
+
TrustError trustStatusToTrustError(long status)
|
81
|
+
{
|
82
|
+
switch (status)
|
83
|
+
{
|
84
|
+
case X509_V_OK:
|
85
|
+
return IceSSL::ICE_ENUM(TrustError, NoError);
|
86
|
+
|
87
|
+
case X509_V_ERR_CERT_CHAIN_TOO_LONG:
|
88
|
+
return IceSSL::ICE_ENUM(TrustError, ChainTooLong);
|
89
|
+
|
90
|
+
case X509_V_ERR_EXCLUDED_VIOLATION:
|
91
|
+
return IceSSL::ICE_ENUM(TrustError, HasExcludedNameConstraint);
|
92
|
+
|
93
|
+
case X509_V_ERR_PERMITTED_VIOLATION:
|
94
|
+
return IceSSL::ICE_ENUM(TrustError, HasNonPermittedNameConstraint);
|
95
|
+
|
96
|
+
case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
|
97
|
+
return IceSSL::ICE_ENUM(TrustError, HasNonSupportedCriticalExtension);
|
98
|
+
|
99
|
+
case X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE:
|
100
|
+
case X509_V_ERR_SUBTREE_MINMAX:
|
101
|
+
return IceSSL::ICE_ENUM(TrustError, HasNonSupportedNameConstraint);
|
102
|
+
|
103
|
+
case X509_V_ERR_HOSTNAME_MISMATCH:
|
104
|
+
case X509_V_ERR_IP_ADDRESS_MISMATCH:
|
105
|
+
return IceSSL::ICE_ENUM(TrustError, HostNameMismatch);
|
106
|
+
|
107
|
+
case X509_V_ERR_INVALID_CA:
|
108
|
+
case X509_V_ERR_INVALID_NON_CA:
|
109
|
+
case X509_V_ERR_PATH_LENGTH_EXCEEDED:
|
110
|
+
case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
|
111
|
+
case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
|
112
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidBasicConstraints);
|
113
|
+
|
114
|
+
case X509_V_ERR_INVALID_EXTENSION:
|
115
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidExtension);
|
116
|
+
|
117
|
+
case X509_V_ERR_UNSUPPORTED_NAME_SYNTAX:
|
118
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidNameConstraints);
|
119
|
+
|
120
|
+
case X509_V_ERR_INVALID_POLICY_EXTENSION:
|
121
|
+
case X509_V_ERR_NO_EXPLICIT_POLICY:
|
122
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidPolicyConstraints);
|
123
|
+
|
124
|
+
case X509_V_ERR_INVALID_PURPOSE:
|
125
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidPurpose);
|
126
|
+
|
127
|
+
case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
|
128
|
+
case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
|
129
|
+
case X509_V_ERR_CERT_SIGNATURE_FAILURE:
|
130
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidSignature);
|
131
|
+
|
132
|
+
case X509_V_ERR_CERT_NOT_YET_VALID:
|
133
|
+
case X509_V_ERR_CERT_HAS_EXPIRED:
|
134
|
+
case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
|
135
|
+
case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
|
136
|
+
return IceSSL::ICE_ENUM(TrustError, InvalidTime);
|
137
|
+
|
138
|
+
case X509_V_ERR_CERT_REJECTED:
|
139
|
+
return IceSSL::ICE_ENUM(TrustError, NotTrusted);
|
140
|
+
|
141
|
+
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
|
142
|
+
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
|
143
|
+
case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
|
144
|
+
return IceSSL::ICE_ENUM(TrustError, PartialChain);
|
145
|
+
|
146
|
+
case X509_V_ERR_CRL_HAS_EXPIRED:
|
147
|
+
case X509_V_ERR_CRL_NOT_YET_VALID:
|
148
|
+
case X509_V_ERR_CRL_SIGNATURE_FAILURE:
|
149
|
+
case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
|
150
|
+
case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
|
151
|
+
case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
|
152
|
+
case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
|
153
|
+
case X509_V_ERR_UNABLE_TO_GET_CRL:
|
154
|
+
case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
|
155
|
+
case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
|
156
|
+
case X509_V_ERR_CRL_PATH_VALIDATION_ERROR:
|
157
|
+
return IceSSL::ICE_ENUM(TrustError, RevocationStatusUnknown);
|
158
|
+
|
159
|
+
case X509_V_ERR_CERT_REVOKED:
|
160
|
+
return IceSSL::ICE_ENUM(TrustError, Revoked);
|
161
|
+
|
162
|
+
case X509_V_ERR_CERT_UNTRUSTED:
|
163
|
+
case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
|
164
|
+
case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
|
165
|
+
return IceSSL::ICE_ENUM(TrustError, UntrustedRoot);
|
166
|
+
|
167
|
+
default:
|
168
|
+
return IceSSL::ICE_ENUM(TrustError, UnknownTrustFailure);
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
}
|
173
|
+
|
80
174
|
IceInternal::NativeInfoPtr
|
81
175
|
OpenSSL::TransceiverI::getNativeInfo()
|
82
176
|
{
|
@@ -99,31 +193,33 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
99
193
|
if(!_ssl)
|
100
194
|
{
|
101
195
|
SOCKET fd = _delegate->getNativeInfo()->fd();
|
196
|
+
BIO* bio = 0;
|
102
197
|
if(fd == INVALID_SOCKET)
|
103
198
|
{
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
199
|
+
assert(_sentBytes == 0);
|
200
|
+
_maxSendPacketSize = 128 * 1024; // 128KB
|
201
|
+
_maxRecvPacketSize = 128 * 1024; // 128KB
|
202
|
+
if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_memBio, _maxRecvPacketSize))
|
203
|
+
{
|
204
|
+
bio = 0;
|
205
|
+
_memBio = 0;
|
206
|
+
}
|
109
207
|
}
|
110
|
-
|
111
|
-
#ifdef ICE_USE_IOCP
|
112
|
-
_maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(fd));
|
113
|
-
_maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(fd));
|
114
|
-
BIO* bio;
|
115
|
-
_sentBytes = 0;
|
116
|
-
if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_iocpBio, _maxRecvPacketSize))
|
208
|
+
else
|
117
209
|
{
|
118
|
-
|
119
|
-
|
120
|
-
|
210
|
+
#ifdef ICE_USE_IOCP
|
211
|
+
assert(_sentBytes == 0);
|
212
|
+
_maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(fd));
|
213
|
+
_maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(fd));
|
214
|
+
if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_memBio, _maxRecvPacketSize))
|
215
|
+
{
|
216
|
+
bio = 0;
|
217
|
+
_memBio = 0;
|
218
|
+
}
|
121
219
|
#else
|
122
|
-
|
123
|
-
// This static_cast is necessary due to 64bit windows. There SOCKET is a non-int type.
|
124
|
-
//
|
125
|
-
BIO* bio = BIO_new_socket(static_cast<int>(fd), 0);
|
220
|
+
bio = BIO_new_socket(fd, 0);
|
126
221
|
#endif
|
222
|
+
}
|
127
223
|
|
128
224
|
if(!bio)
|
129
225
|
{
|
@@ -134,10 +230,11 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
134
230
|
if(!_ssl)
|
135
231
|
{
|
136
232
|
BIO_free(bio);
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
233
|
+
if(_memBio)
|
234
|
+
{
|
235
|
+
BIO_free(_memBio);
|
236
|
+
_memBio = 0;
|
237
|
+
}
|
141
238
|
throw SecurityException(__FILE__, __LINE__, "openssl failure");
|
142
239
|
}
|
143
240
|
SSL_set_bio(_ssl, bio, bio);
|
@@ -173,22 +270,41 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
173
270
|
// Hostname verification was included in OpenSSL 1.0.2
|
174
271
|
//
|
175
272
|
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10002000L
|
176
|
-
if(_engine->getCheckCertName() && !_host.empty()
|
273
|
+
if(_engine->getCheckCertName() && !_host.empty())
|
177
274
|
{
|
178
275
|
X509_VERIFY_PARAM* param = SSL_get0_param(_ssl);
|
179
276
|
if(IceInternal::isIpAddress(_host))
|
180
277
|
{
|
181
|
-
X509_VERIFY_PARAM_set1_ip_asc(param, _host.c_str())
|
278
|
+
if(!X509_VERIFY_PARAM_set1_ip_asc(param, _host.c_str()))
|
279
|
+
{
|
280
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: error setting the expected IP address `"
|
281
|
+
+ _host + "'");
|
282
|
+
}
|
182
283
|
}
|
183
284
|
else
|
184
285
|
{
|
185
|
-
X509_VERIFY_PARAM_set1_host(param, _host.c_str(), 0)
|
286
|
+
if(!X509_VERIFY_PARAM_set1_host(param, _host.c_str(), 0))
|
287
|
+
{
|
288
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: error setting the expected host name `"
|
289
|
+
+ _host + "'");
|
290
|
+
}
|
186
291
|
}
|
187
292
|
}
|
188
293
|
#endif
|
189
294
|
|
190
295
|
SSL_set_verify(_ssl, sslVerifyMode, IceSSL_opensslVerifyCallback);
|
191
296
|
}
|
297
|
+
|
298
|
+
//
|
299
|
+
// Enable SNI
|
300
|
+
//
|
301
|
+
if(!_incoming && _engine->getServerNameIndication() && !_host.empty() && !IceInternal::isIpAddress(_host))
|
302
|
+
{
|
303
|
+
if(!SSL_set_tlsext_host_name(_ssl, _host.c_str()))
|
304
|
+
{
|
305
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SNI host failed `" + _host + "'");
|
306
|
+
}
|
307
|
+
}
|
192
308
|
}
|
193
309
|
|
194
310
|
while(!SSL_is_init_finished(_ssl))
|
@@ -213,8 +329,7 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
213
329
|
sync.release();
|
214
330
|
#endif
|
215
331
|
|
216
|
-
|
217
|
-
if(BIO_ctrl_pending(_iocpBio))
|
332
|
+
if(_memBio && BIO_ctrl_pending(_memBio))
|
218
333
|
{
|
219
334
|
if(!send())
|
220
335
|
{
|
@@ -222,7 +337,6 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
222
337
|
}
|
223
338
|
continue;
|
224
339
|
}
|
225
|
-
#endif
|
226
340
|
|
227
341
|
if(ret <= 0)
|
228
342
|
{
|
@@ -239,58 +353,55 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
239
353
|
}
|
240
354
|
case SSL_ERROR_WANT_READ:
|
241
355
|
{
|
242
|
-
|
243
|
-
if(receive())
|
356
|
+
if(_memBio && receive())
|
244
357
|
{
|
245
358
|
continue;
|
246
359
|
}
|
247
|
-
#endif
|
248
360
|
return IceInternal::SocketOperationRead;
|
249
361
|
}
|
250
362
|
case SSL_ERROR_WANT_WRITE:
|
251
363
|
{
|
252
|
-
|
253
|
-
if(send())
|
364
|
+
if(_memBio && send())
|
254
365
|
{
|
255
366
|
continue;
|
256
367
|
}
|
257
|
-
#endif
|
258
368
|
return IceInternal::SocketOperationWrite;
|
259
369
|
}
|
260
370
|
case SSL_ERROR_SYSCALL:
|
261
371
|
{
|
262
|
-
|
263
|
-
if(IceInternal::interrupted())
|
372
|
+
if(!_memBio)
|
264
373
|
{
|
265
|
-
|
266
|
-
}
|
267
|
-
|
268
|
-
if(IceInternal::wouldBlock())
|
269
|
-
{
|
270
|
-
if(SSL_want_read(_ssl))
|
374
|
+
if(IceInternal::interrupted())
|
271
375
|
{
|
272
|
-
|
376
|
+
break;
|
273
377
|
}
|
274
|
-
|
378
|
+
|
379
|
+
if(IceInternal::wouldBlock())
|
275
380
|
{
|
276
|
-
|
381
|
+
if(SSL_want_read(_ssl))
|
382
|
+
{
|
383
|
+
return IceInternal::SocketOperationRead;
|
384
|
+
}
|
385
|
+
else if(SSL_want_write(_ssl))
|
386
|
+
{
|
387
|
+
return IceInternal::SocketOperationWrite;
|
388
|
+
}
|
389
|
+
|
390
|
+
break;
|
277
391
|
}
|
278
392
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
{
|
284
|
-
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
393
|
+
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
394
|
+
{
|
395
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
396
|
+
}
|
285
397
|
}
|
286
|
-
#endif
|
287
398
|
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
288
399
|
}
|
289
400
|
case SSL_ERROR_SSL:
|
290
401
|
{
|
291
402
|
ostringstream ostr;
|
292
403
|
ostr << "SSL error occurred for new " << (_incoming ? "incoming" : "outgoing")
|
293
|
-
<< " connection:\
|
404
|
+
<< " connection:\n" << _delegate->toString() << "\n" << _engine->sslErrors();
|
294
405
|
throw ProtocolException(__FILE__, __LINE__, ostr.str());
|
295
406
|
}
|
296
407
|
}
|
@@ -298,6 +409,7 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
298
409
|
}
|
299
410
|
|
300
411
|
long result = SSL_get_verify_result(_ssl);
|
412
|
+
_trustError = trustStatusToTrustError(result);
|
301
413
|
if(result != X509_V_OK)
|
302
414
|
{
|
303
415
|
if(_engine->getVerifyPeer() == 0)
|
@@ -327,6 +439,25 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
327
439
|
}
|
328
440
|
|
329
441
|
_cipher = SSL_get_cipher_name(_ssl); // Nothing needs to be free'd.
|
442
|
+
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10002000L
|
443
|
+
try
|
444
|
+
{
|
445
|
+
//
|
446
|
+
// Peer hostname verification is new in OpenSSL 1.0.2 for older versions
|
447
|
+
// We use IceSSL built-in hostname verification.
|
448
|
+
//
|
449
|
+
_engine->verifyPeerCertName(_host, ICE_DYNAMIC_CAST(ConnectionInfo, getInfo()));
|
450
|
+
}
|
451
|
+
catch(const SecurityException&)
|
452
|
+
{
|
453
|
+
_trustError = IceSSL::ICE_ENUM(TrustError, HostNameMismatch);
|
454
|
+
_verified = false;
|
455
|
+
if(_engine->getVerifyPeer() > 0)
|
456
|
+
{
|
457
|
+
throw;
|
458
|
+
}
|
459
|
+
}
|
460
|
+
#endif
|
330
461
|
_engine->verifyPeer(_host, ICE_DYNAMIC_CAST(ConnectionInfo, getInfo()), toString());
|
331
462
|
|
332
463
|
if(_engine->securityTraceLevel() >= 1)
|
@@ -349,7 +480,7 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
349
480
|
out << "bits = " << SSL_CIPHER_get_bits(cipher, 0) << "\n";
|
350
481
|
out << "protocol = " << SSL_get_version(_ssl) << "\n";
|
351
482
|
}
|
352
|
-
out <<
|
483
|
+
out << toString();
|
353
484
|
}
|
354
485
|
|
355
486
|
return IceInternal::SocketOperationNone;
|
@@ -382,13 +513,11 @@ OpenSSL::TransceiverI::close()
|
|
382
513
|
_ssl = 0;
|
383
514
|
}
|
384
515
|
|
385
|
-
|
386
|
-
if(_iocpBio)
|
516
|
+
if(_memBio)
|
387
517
|
{
|
388
|
-
BIO_free(
|
389
|
-
|
518
|
+
BIO_free(_memBio);
|
519
|
+
_memBio = 0;
|
390
520
|
}
|
391
|
-
#endif
|
392
521
|
|
393
522
|
_delegate->close();
|
394
523
|
}
|
@@ -401,15 +530,13 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
401
530
|
return _delegate->write(buf);
|
402
531
|
}
|
403
532
|
|
404
|
-
|
405
|
-
if(_writeBuffer.i != _writeBuffer.b.end())
|
533
|
+
if(_memBio && _writeBuffer.i != _writeBuffer.b.end())
|
406
534
|
{
|
407
535
|
if(!send())
|
408
536
|
{
|
409
537
|
return IceInternal::SocketOperationWrite;
|
410
538
|
}
|
411
539
|
}
|
412
|
-
#endif
|
413
540
|
|
414
541
|
if(buf.i == buf.b.end())
|
415
542
|
{
|
@@ -419,37 +546,39 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
419
546
|
//
|
420
547
|
// It's impossible for packetSize to be more than an Int.
|
421
548
|
//
|
422
|
-
int packetSize =
|
423
|
-
|
424
|
-
std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buf.b.end() - buf.i));
|
425
|
-
#else
|
549
|
+
int packetSize = _memBio ?
|
550
|
+
std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buf.b.end() - buf.i)) :
|
426
551
|
static_cast<int>(buf.b.end() - buf.i);
|
427
|
-
|
552
|
+
|
428
553
|
while(buf.i != buf.b.end())
|
429
554
|
{
|
430
555
|
ERR_clear_error(); // Clear any spurious errors.
|
431
|
-
#ifdef ICE_USE_IOCP
|
432
556
|
int ret;
|
433
|
-
if(
|
557
|
+
if(_memBio)
|
434
558
|
{
|
435
|
-
|
436
|
-
_sentBytes = 0;
|
437
|
-
}
|
438
|
-
else
|
439
|
-
{
|
440
|
-
ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize);
|
441
|
-
if(ret > 0)
|
559
|
+
if(_sentBytes)
|
442
560
|
{
|
443
|
-
|
561
|
+
ret = _sentBytes;
|
562
|
+
_sentBytes = 0;
|
563
|
+
}
|
564
|
+
else
|
565
|
+
{
|
566
|
+
ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize);
|
567
|
+
if(ret > 0)
|
444
568
|
{
|
445
|
-
|
446
|
-
|
569
|
+
if(!send())
|
570
|
+
{
|
571
|
+
_sentBytes = ret;
|
572
|
+
return IceInternal::SocketOperationWrite;
|
573
|
+
}
|
447
574
|
}
|
448
575
|
}
|
449
576
|
}
|
450
|
-
|
451
|
-
|
452
|
-
|
577
|
+
else
|
578
|
+
{
|
579
|
+
ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize);
|
580
|
+
}
|
581
|
+
|
453
582
|
if(ret <= 0)
|
454
583
|
{
|
455
584
|
switch(SSL_get_error(_ssl, ret))
|
@@ -468,35 +597,34 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
468
597
|
}
|
469
598
|
case SSL_ERROR_WANT_WRITE:
|
470
599
|
{
|
471
|
-
|
472
|
-
if(send())
|
600
|
+
if(_memBio && send())
|
473
601
|
{
|
474
602
|
continue;
|
475
603
|
}
|
476
|
-
#endif
|
477
604
|
return IceInternal::SocketOperationWrite;
|
478
605
|
}
|
479
606
|
case SSL_ERROR_SYSCALL:
|
480
607
|
{
|
481
|
-
|
482
|
-
|
483
|
-
if(IceInternal::interrupted())
|
608
|
+
if(!_memBio)
|
484
609
|
{
|
485
|
-
|
486
|
-
|
610
|
+
if(IceInternal::interrupted())
|
611
|
+
{
|
612
|
+
continue;
|
613
|
+
}
|
487
614
|
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
615
|
+
if(IceInternal::noBuffers() && packetSize > 1024)
|
616
|
+
{
|
617
|
+
packetSize /= 2;
|
618
|
+
continue;
|
619
|
+
}
|
493
620
|
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
621
|
+
if(IceInternal::wouldBlock())
|
622
|
+
{
|
623
|
+
assert(SSL_want_write(_ssl));
|
624
|
+
return IceInternal::SocketOperationWrite;
|
625
|
+
}
|
498
626
|
}
|
499
|
-
|
627
|
+
|
500
628
|
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
501
629
|
{
|
502
630
|
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
@@ -532,15 +660,13 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
532
660
|
return _delegate->read(buf);
|
533
661
|
}
|
534
662
|
|
535
|
-
|
536
|
-
if(_readBuffer.i != _readBuffer.b.end())
|
663
|
+
if(_memBio && _readBuffer.i != _readBuffer.b.end())
|
537
664
|
{
|
538
665
|
if(!receive())
|
539
666
|
{
|
540
667
|
return IceInternal::SocketOperationRead;
|
541
668
|
}
|
542
669
|
}
|
543
|
-
#endif
|
544
670
|
|
545
671
|
//
|
546
672
|
// Note: We assume that OpenSSL doesn't read more SSL records than
|
@@ -578,12 +704,10 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
578
704
|
}
|
579
705
|
case SSL_ERROR_WANT_READ:
|
580
706
|
{
|
581
|
-
|
582
|
-
if(receive())
|
707
|
+
if(_memBio && receive())
|
583
708
|
{
|
584
709
|
continue;
|
585
710
|
}
|
586
|
-
#endif
|
587
711
|
return IceInternal::SocketOperationRead;
|
588
712
|
}
|
589
713
|
case SSL_ERROR_WANT_WRITE:
|
@@ -593,24 +717,26 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
593
717
|
}
|
594
718
|
case SSL_ERROR_SYSCALL:
|
595
719
|
{
|
596
|
-
|
597
|
-
if(IceInternal::interrupted())
|
720
|
+
if(!_memBio)
|
598
721
|
{
|
599
|
-
|
600
|
-
|
722
|
+
if(IceInternal::interrupted())
|
723
|
+
{
|
724
|
+
continue;
|
725
|
+
}
|
601
726
|
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
727
|
+
if(IceInternal::noBuffers() && packetSize > 1024)
|
728
|
+
{
|
729
|
+
packetSize /= 2;
|
730
|
+
continue;
|
731
|
+
}
|
607
732
|
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
733
|
+
if(IceInternal::wouldBlock())
|
734
|
+
{
|
735
|
+
assert(SSL_want_read(_ssl));
|
736
|
+
return IceInternal::SocketOperationRead;
|
737
|
+
}
|
612
738
|
}
|
613
|
-
|
739
|
+
|
614
740
|
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
615
741
|
{
|
616
742
|
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
@@ -660,10 +786,10 @@ OpenSSL::TransceiverI::startWrite(IceInternal::Buffer& buffer)
|
|
660
786
|
int packetSize = std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buffer.b.end() - buffer.i));
|
661
787
|
_sentBytes = SSL_write(_ssl, reinterpret_cast<void*>(&*buffer.i), packetSize);
|
662
788
|
|
663
|
-
assert(BIO_ctrl_pending(
|
664
|
-
_writeBuffer.b.resize( BIO_ctrl_pending(
|
789
|
+
assert(BIO_ctrl_pending(_memBio));
|
790
|
+
_writeBuffer.b.resize( BIO_ctrl_pending(_memBio));
|
665
791
|
_writeBuffer.i = _writeBuffer.b.begin();
|
666
|
-
BIO_read(
|
792
|
+
BIO_read(_memBio, _writeBuffer.i, static_cast<int>(_writeBuffer.b.size()));
|
667
793
|
}
|
668
794
|
|
669
795
|
return _delegate->startWrite(_writeBuffer) && buffer.i == buffer.b.end();
|
@@ -705,8 +831,8 @@ OpenSSL::TransceiverI::startRead(IceInternal::Buffer& buffer)
|
|
705
831
|
SSL_read(_ssl, reinterpret_cast<void*>(&*buffer.i), static_cast<int>(buffer.b.end() - buffer.i));
|
706
832
|
assert(ret <= 0 && SSL_get_error(_ssl, ret) == SSL_ERROR_WANT_READ);
|
707
833
|
|
708
|
-
assert(BIO_ctrl_get_read_request(
|
709
|
-
_readBuffer.b.resize(BIO_ctrl_get_read_request(
|
834
|
+
assert(BIO_ctrl_get_read_request(_memBio));
|
835
|
+
_readBuffer.b.resize(BIO_ctrl_get_read_request(_memBio));
|
710
836
|
_readBuffer.i = _readBuffer.b.begin();
|
711
837
|
}
|
712
838
|
|
@@ -727,7 +853,7 @@ OpenSSL::TransceiverI::finishRead(IceInternal::Buffer& buffer)
|
|
727
853
|
_delegate->finishRead(_readBuffer);
|
728
854
|
if(_readBuffer.i == _readBuffer.b.end())
|
729
855
|
{
|
730
|
-
int n = BIO_write(
|
856
|
+
int n = BIO_write(_memBio, _readBuffer.b.begin(), static_cast<int>(_readBuffer.b.size()));
|
731
857
|
if(n < 0) // Expected if the transceiver was closed.
|
732
858
|
{
|
733
859
|
throw SecurityException(__FILE__, __LINE__, "SSL bio write failed");
|
@@ -798,13 +924,15 @@ OpenSSL::TransceiverI::toDetailedString() const
|
|
798
924
|
Ice::ConnectionInfoPtr
|
799
925
|
OpenSSL::TransceiverI::getInfo() const
|
800
926
|
{
|
801
|
-
|
927
|
+
ExtendedConnectionInfoPtr info = ICE_MAKE_SHARED(ExtendedConnectionInfo);
|
802
928
|
info->underlying = _delegate->getInfo();
|
803
929
|
info->incoming = _incoming;
|
804
930
|
info->adapterName = _adapterName;
|
805
931
|
info->cipher = _cipher;
|
806
932
|
info->certs = _certs;
|
807
933
|
info->verified = _verified;
|
934
|
+
info->errorCode = _trustError;
|
935
|
+
info->host = _incoming ? "" : _host;
|
808
936
|
return info;
|
809
937
|
}
|
810
938
|
|
@@ -837,7 +965,7 @@ OpenSSL::TransceiverI::verifyCallback(int ok, X509_STORE_CTX* c)
|
|
837
965
|
out << "subject = " << buf << '\n';
|
838
966
|
out << "depth = " << X509_STORE_CTX_get_error_depth(c) << '\n';
|
839
967
|
out << "error = " << X509_verify_cert_error_string(err) << '\n';
|
840
|
-
out <<
|
968
|
+
out << toString();
|
841
969
|
}
|
842
970
|
|
843
971
|
//
|
@@ -877,13 +1005,11 @@ OpenSSL::TransceiverI::TransceiverI(const InstancePtr& instance,
|
|
877
1005
|
_delegate(delegate),
|
878
1006
|
_connected(false),
|
879
1007
|
_verified(false),
|
880
|
-
_ssl(0)
|
881
|
-
|
882
|
-
, _iocpBio(0),
|
1008
|
+
_ssl(0),
|
1009
|
+
_memBio(0),
|
883
1010
|
_sentBytes(0),
|
884
1011
|
_maxSendPacketSize(0),
|
885
1012
|
_maxRecvPacketSize(0)
|
886
|
-
#endif
|
887
1013
|
{
|
888
1014
|
}
|
889
1015
|
|
@@ -891,14 +1017,13 @@ OpenSSL::TransceiverI::~TransceiverI()
|
|
891
1017
|
{
|
892
1018
|
}
|
893
1019
|
|
894
|
-
#ifdef ICE_USE_IOCP
|
895
1020
|
bool
|
896
1021
|
OpenSSL::TransceiverI::receive()
|
897
1022
|
{
|
898
1023
|
if(_readBuffer.i == _readBuffer.b.end())
|
899
1024
|
{
|
900
|
-
assert(BIO_ctrl_get_read_request(
|
901
|
-
_readBuffer.b.resize(BIO_ctrl_get_read_request(
|
1025
|
+
assert(BIO_ctrl_get_read_request(_memBio));
|
1026
|
+
_readBuffer.b.resize(BIO_ctrl_get_read_request(_memBio));
|
902
1027
|
_readBuffer.i = _readBuffer.b.begin();
|
903
1028
|
}
|
904
1029
|
|
@@ -915,7 +1040,7 @@ OpenSSL::TransceiverI::receive()
|
|
915
1040
|
#ifndef NDEBUG
|
916
1041
|
int n =
|
917
1042
|
#endif
|
918
|
-
BIO_write(
|
1043
|
+
BIO_write(_memBio, &_readBuffer.b[0], static_cast<int>(_readBuffer.b.end() - _readBuffer.b.begin()));
|
919
1044
|
|
920
1045
|
assert(n == static_cast<int>(_readBuffer.b.end() - _readBuffer.b.begin()));
|
921
1046
|
|
@@ -927,10 +1052,10 @@ OpenSSL::TransceiverI::send()
|
|
927
1052
|
{
|
928
1053
|
if(_writeBuffer.i == _writeBuffer.b.end())
|
929
1054
|
{
|
930
|
-
assert(BIO_ctrl_pending(
|
931
|
-
_writeBuffer.b.resize( BIO_ctrl_pending(
|
1055
|
+
assert(BIO_ctrl_pending(_memBio));
|
1056
|
+
_writeBuffer.b.resize( BIO_ctrl_pending(_memBio));
|
932
1057
|
_writeBuffer.i = _writeBuffer.b.begin();
|
933
|
-
BIO_read(
|
1058
|
+
BIO_read(_memBio, _writeBuffer.i, static_cast<int>(_writeBuffer.b.size()));
|
934
1059
|
}
|
935
1060
|
|
936
1061
|
if(_writeBuffer.i != _writeBuffer.b.end())
|
@@ -942,4 +1067,3 @@ OpenSSL::TransceiverI::send()
|
|
942
1067
|
}
|
943
1068
|
return _writeBuffer.i == _writeBuffer.b.end();
|
944
1069
|
}
|
945
|
-
#endif
|