zeroc-ice 3.7.0 → 3.7.5
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 +78 -10
- data/ext/Communicator.h +1 -6
- data/ext/Config.h +35 -6
- data/ext/Connection.cpp +22 -11
- data/ext/Connection.h +4 -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 +90 -14
- data/ext/Proxy.h +1 -6
- data/ext/Slice.cpp +3 -18
- data/ext/Slice.h +1 -6
- data/ext/Types.cpp +92 -60
- data/ext/Types.h +1 -6
- data/ext/Util.cpp +61 -32
- data/ext/Util.h +108 -33
- data/ext/ValueFactoryManager.cpp +2 -7
- data/ext/ValueFactoryManager.h +2 -7
- data/ext/extconf.rb +5 -3
- data/ext/ice/cpp/include/Ice/Application.h +234 -81
- data/ext/ice/cpp/include/Ice/AsyncResult.h +77 -6
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +35 -7
- 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 +43 -6
- data/ext/ice/cpp/include/Ice/Comparable.h +81 -6
- data/ext/ice/cpp/include/Ice/Config.h +12 -6
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +97 -6
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +3 -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 +17 -7
- data/ext/ice/cpp/include/Ice/Dispatcher.h +22 -7
- 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 +57 -20
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +11 -6
- data/ext/ice/cpp/include/Ice/FactoryTable.h +12 -7
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +2 -7
- data/ext/ice/cpp/include/Ice/Format.h +13 -19
- data/ext/ice/cpp/include/Ice/Functional.h +6 -6
- 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 +47 -18
- data/ext/ice/cpp/include/Ice/Incoming.h +27 -9
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +47 -9
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
- data/ext/ice/cpp/include/Ice/Initialize.h +775 -103
- data/ext/ice/cpp/include/Ice/InputStream.h +642 -122
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +17 -6
- data/ext/ice/cpp/include/Ice/LocalObject.h +5 -6
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +37 -11
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +11 -7
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +3 -6
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +18 -7
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +46 -28
- data/ext/ice/cpp/include/Ice/Object.h +338 -52
- data/ext/ice/cpp/include/Ice/ObjectF.h +5 -6
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
- data/ext/ice/cpp/include/Ice/Optional.h +42 -12
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +32 -8
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +441 -102
- data/ext/ice/cpp/include/Ice/Protocol.h +31 -6
- data/ext/ice/cpp/include/Ice/Proxy.h +2288 -207
- data/ext/ice/cpp/include/Ice/ProxyF.h +3 -6
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +10 -6
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +67 -14
- 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 +267 -143
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +5 -6
- data/ext/ice/cpp/include/Ice/SlicedData.h +80 -38
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +4 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +325 -122
- data/ext/ice/cpp/include/Ice/StringConverter.h +32 -6
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
- data/ext/ice/cpp/include/Ice/UUID.h +2 -6
- data/ext/ice/cpp/include/Ice/UniquePtr.h +2 -7
- data/ext/ice/cpp/include/Ice/UniqueRef.h +6 -7
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +6 -6
- data/ext/ice/cpp/include/Ice/Value.h +41 -6
- data/ext/ice/cpp/include/Ice/ValueF.h +3 -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 +75 -58
- data/ext/ice/cpp/include/IceSSL/Plugin.h +323 -223
- data/ext/ice/cpp/include/IceSSL/SChannel.h +41 -35
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +39 -33
- data/ext/ice/cpp/include/IceSSL/UWP.h +33 -29
- 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 +35 -14
- 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 +52 -36
- 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 +3 -13
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -6
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
- data/ext/ice/cpp/include/IceUtil/Optional.h +103 -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 +12 -9
- 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 +107 -92
- 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 +5 -6
- data/ext/ice/cpp/include/IceUtil/UUID.h +5 -6
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
- data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +81 -26
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +928 -136
- data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +14 -11
- data/ext/ice/cpp/include/generated/Ice/Connection.h +968 -180
- data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +22 -15
- data/ext/ice/cpp/include/generated/Ice/Current.h +166 -9
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +476 -115
- data/ext/ice/cpp/include/generated/Ice/EndpointF.h +42 -23
- data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +30 -9
- data/ext/ice/cpp/include/generated/Ice/FacetMap.h +12 -11
- data/ext/ice/cpp/include/generated/Ice/Identity.h +56 -13
- data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +151 -34
- data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +14 -11
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +630 -89
- data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +20 -13
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +5009 -770
- data/ext/ice/cpp/include/generated/Ice/Locator.h +2255 -441
- data/ext/ice/cpp/include/generated/Ice/LocatorF.h +32 -19
- data/ext/ice/cpp/include/generated/Ice/Logger.h +105 -32
- data/ext/ice/cpp/include/generated/Ice/LoggerF.h +14 -11
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +2539 -471
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +1005 -132
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +14 -11
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +73 -18
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +143 -34
- data/ext/ice/cpp/include/generated/Ice/PluginF.h +18 -13
- data/ext/ice/cpp/include/generated/Ice/Process.h +514 -79
- data/ext/ice/cpp/include/generated/Ice/ProcessF.h +21 -14
- data/ext/ice/cpp/include/generated/Ice/Properties.h +307 -64
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +738 -127
- data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +25 -16
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1524 -284
- data/ext/ice/cpp/include/generated/Ice/Router.h +1007 -201
- data/ext/ice/cpp/include/generated/Ice/RouterF.h +21 -14
- data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +175 -24
- data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +14 -11
- data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +14 -9
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +178 -29
- data/ext/ice/cpp/include/generated/Ice/Version.h +32 -9
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +72 -21
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +14 -11
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +40 -15
- data/ext/ice/cpp/src/Ice/ACM.cpp +21 -14
- 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 +7 -10
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +56 -22
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +15 -16
- data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +11 -11
- 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 +28 -17
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +167 -52
- 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 +78 -60
- data/ext/ice/cpp/src/Ice/ConnectionI.h +10 -13
- 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 +5 -12
- 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 +25 -16
- 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 +7 -18
- 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 +2 -7
- data/ext/ice/cpp/src/Ice/EndpointI.h +5 -10
- 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 +37 -59
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +5 -10
- 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 +7 -10
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +3 -20
- 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 +15 -26
- data/ext/ice/cpp/src/Ice/InputStream.cpp +45 -77
- data/ext/ice/cpp/src/Ice/Instance.cpp +70 -46
- data/ext/ice/cpp/src/Ice/Instance.h +3 -6
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +34 -19
- 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 +280 -285
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Locator.cpp +274 -166
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +28 -30
- 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 +7 -10
- 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 +296 -113
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +10 -15
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
- data/ext/ice/cpp/src/Ice/Network.cpp +252 -271
- data/ext/ice/cpp/src/Ice/Network.h +6 -20
- 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 +16 -17
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +7 -10
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +53 -24
- 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 +137 -156
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +15 -16
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +7 -10
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +29 -51
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +2 -7
- 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 +10 -11
- data/ext/ice/cpp/src/Ice/PluginF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +15 -39
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +3 -8
- data/ext/ice/cpp/src/Ice/Process.cpp +66 -42
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/Properties.cpp +7 -10
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +84 -54
- 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 +25 -35
- data/ext/ice/cpp/src/Ice/PropertiesI.h +10 -15
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +45 -8
- data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
- data/ext/ice/cpp/src/Ice/Protocol.cpp +5 -18
- 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 +54 -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 +116 -38
- data/ext/ice/cpp/src/Ice/Reference.h +13 -7
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +52 -98
- 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 +194 -113
- 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 +160 -87
- data/ext/ice/cpp/src/Ice/RouterF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +8 -35
- data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -8
- 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 +76 -49
- data/ext/ice/cpp/src/Ice/Selector.h +1 -6
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +7 -10
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +4 -9
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +21 -42
- 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 +46 -69
- data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +10 -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 +13 -19
- 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 +13 -16
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +2 -7
- 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 +79 -19
- 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 +30 -33
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -7
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +49 -79
- 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 +10 -11
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +3 -12
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +2 -7
- 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 +4 -10
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +2 -7
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +25 -30
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +86 -33
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1083 -129
- 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 +71 -30
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +640 -79
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +122 -25
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +2 -9
- 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 +7 -10
- data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +4 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +2 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +9 -14
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +3 -8
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +7 -10
- 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 +11 -19
- 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 +190 -206
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +2 -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 +1 -6
- data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -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 +71 -62
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -6
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +26 -28
- 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 +47 -27
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +6 -7
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +41 -34
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +4 -10
- 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 +6 -11
- 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 -11
- 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 +10 -17
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +8 -13
- 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 +178 -170
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +8 -12
- 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 +424 -438
- data/ext/ice/cpp/src/Slice/Grammar.h +7 -7
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +195 -122
- data/ext/ice/cpp/src/Slice/JavaUtil.h +12 -12
- 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 +6 -6
- data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
- data/ext/ice/cpp/src/Slice/Parser.cpp +535 -266
- data/ext/ice/cpp/src/Slice/Parser.h +72 -12
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +26 -17
- data/ext/ice/cpp/src/Slice/Preprocessor.h +2 -7
- data/ext/ice/cpp/src/Slice/Python.cpp +28 -42
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +137 -53
- data/ext/ice/cpp/src/Slice/PythonUtil.h +2 -7
- 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 +296 -217
- data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +109 -27
- data/ext/ice/cpp/src/Slice/Util.h +5 -9
- data/ext/ice/mcpp/Makefile +2 -5
- data/ice.gemspec +3 -5
- 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 +2 -7
- 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 +143 -102
- data/slice/Ice/CommunicatorF.ice +13 -7
- data/slice/Ice/Connection.ice +65 -29
- data/slice/Ice/ConnectionF.ice +13 -7
- data/slice/Ice/Current.ice +31 -26
- data/slice/Ice/Endpoint.ice +24 -21
- 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 +31 -25
- 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 +14 -8
- 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 +23 -28
- 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 +31 -26
- 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 +30 -11
- 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 +20 -15
- data/slice/IceStorm/Metrics.ice +12 -8
- metadata +7 -13
- data/BZIP2_LICENSE +0 -42
- data/ext/ice/bzip2/blocksort.c +0 -1094
- data/ext/ice/bzip2/bzlib.c +0 -1572
- data/ext/ice/bzip2/bzlib.h +0 -282
- data/ext/ice/bzip2/bzlib_private.h +0 -509
- data/ext/ice/bzip2/compress.c +0 -672
- data/ext/ice/bzip2/crctable.c +0 -104
- data/ext/ice/bzip2/decompress.c +0 -646
- data/ext/ice/bzip2/huffman.c +0 -205
- data/ext/ice/bzip2/randtable.c +0 -84
@@ -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>
|
@@ -99,50 +94,49 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
99
94
|
if(!_ssl)
|
100
95
|
{
|
101
96
|
SOCKET fd = _delegate->getNativeInfo()->fd();
|
97
|
+
BIO* bio = 0;
|
102
98
|
if(fd == INVALID_SOCKET)
|
103
99
|
{
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
100
|
+
assert(_sentBytes == 0);
|
101
|
+
_maxSendPacketSize = 128 * 1024; // 128KB
|
102
|
+
_maxRecvPacketSize = 128 * 1024; // 128KB
|
103
|
+
if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_memBio, _maxRecvPacketSize))
|
104
|
+
{
|
105
|
+
bio = 0;
|
106
|
+
_memBio = 0;
|
107
|
+
}
|
109
108
|
}
|
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))
|
109
|
+
else
|
117
110
|
{
|
118
|
-
|
119
|
-
|
120
|
-
|
111
|
+
#ifdef ICE_USE_IOCP
|
112
|
+
assert(_sentBytes == 0);
|
113
|
+
_maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(fd));
|
114
|
+
_maxRecvPacketSize = std::max(512, IceInternal::getRecvBufferSize(fd));
|
115
|
+
if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_memBio, _maxRecvPacketSize))
|
116
|
+
{
|
117
|
+
bio = 0;
|
118
|
+
_memBio = 0;
|
119
|
+
}
|
121
120
|
#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);
|
121
|
+
bio = BIO_new_socket(fd, 0);
|
126
122
|
#endif
|
123
|
+
}
|
127
124
|
|
128
125
|
if(!bio)
|
129
126
|
{
|
130
|
-
SecurityException
|
131
|
-
ex.reason = "openssl failure";
|
132
|
-
throw ex;
|
127
|
+
throw SecurityException(__FILE__, __LINE__, "openssl failure");
|
133
128
|
}
|
134
129
|
|
135
130
|
_ssl = SSL_new(_engine->context());
|
136
131
|
if(!_ssl)
|
137
132
|
{
|
138
133
|
BIO_free(bio);
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
throw ex;
|
134
|
+
if(_memBio)
|
135
|
+
{
|
136
|
+
BIO_free(_memBio);
|
137
|
+
_memBio = 0;
|
138
|
+
}
|
139
|
+
throw SecurityException(__FILE__, __LINE__, "openssl failure");
|
146
140
|
}
|
147
141
|
SSL_set_bio(_ssl, bio, bio);
|
148
142
|
|
@@ -177,22 +171,41 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
177
171
|
// Hostname verification was included in OpenSSL 1.0.2
|
178
172
|
//
|
179
173
|
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10002000L
|
180
|
-
if(_engine->getCheckCertName() && !_host.empty()
|
174
|
+
if(_engine->getCheckCertName() && !_host.empty())
|
181
175
|
{
|
182
176
|
X509_VERIFY_PARAM* param = SSL_get0_param(_ssl);
|
183
177
|
if(IceInternal::isIpAddress(_host))
|
184
178
|
{
|
185
|
-
X509_VERIFY_PARAM_set1_ip_asc(param, _host.c_str())
|
179
|
+
if(!X509_VERIFY_PARAM_set1_ip_asc(param, _host.c_str()))
|
180
|
+
{
|
181
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: error setting the expected IP address `"
|
182
|
+
+ _host + "'");
|
183
|
+
}
|
186
184
|
}
|
187
185
|
else
|
188
186
|
{
|
189
|
-
X509_VERIFY_PARAM_set1_host(param, _host.c_str(), 0)
|
187
|
+
if(!X509_VERIFY_PARAM_set1_host(param, _host.c_str(), 0))
|
188
|
+
{
|
189
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: error setting the expected host name `"
|
190
|
+
+ _host + "'");
|
191
|
+
}
|
190
192
|
}
|
191
193
|
}
|
192
194
|
#endif
|
193
195
|
|
194
196
|
SSL_set_verify(_ssl, sslVerifyMode, IceSSL_opensslVerifyCallback);
|
195
197
|
}
|
198
|
+
|
199
|
+
//
|
200
|
+
// Enable SNI
|
201
|
+
//
|
202
|
+
if(!_incoming && _engine->getServerNameIndication() && !_host.empty() && !IceInternal::isIpAddress(_host))
|
203
|
+
{
|
204
|
+
if(!SSL_set_tlsext_host_name(_ssl, _host.c_str()))
|
205
|
+
{
|
206
|
+
throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SNI host failed `" + _host + "'");
|
207
|
+
}
|
208
|
+
}
|
196
209
|
}
|
197
210
|
|
198
211
|
while(!SSL_is_init_finished(_ssl))
|
@@ -217,8 +230,7 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
217
230
|
sync.release();
|
218
231
|
#endif
|
219
232
|
|
220
|
-
|
221
|
-
if(BIO_ctrl_pending(_iocpBio))
|
233
|
+
if(_memBio && BIO_ctrl_pending(_memBio))
|
222
234
|
{
|
223
235
|
if(!send())
|
224
236
|
{
|
@@ -226,7 +238,6 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
226
238
|
}
|
227
239
|
continue;
|
228
240
|
}
|
229
|
-
#endif
|
230
241
|
|
231
242
|
if(ret <= 0)
|
232
243
|
{
|
@@ -239,71 +250,60 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
239
250
|
}
|
240
251
|
case SSL_ERROR_ZERO_RETURN:
|
241
252
|
{
|
242
|
-
ConnectionLostException
|
243
|
-
ex.error = IceInternal::getSocketErrno();
|
244
|
-
throw ex;
|
253
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
245
254
|
}
|
246
255
|
case SSL_ERROR_WANT_READ:
|
247
256
|
{
|
248
|
-
|
249
|
-
if(receive())
|
257
|
+
if(_memBio && receive())
|
250
258
|
{
|
251
259
|
continue;
|
252
260
|
}
|
253
|
-
#endif
|
254
261
|
return IceInternal::SocketOperationRead;
|
255
262
|
}
|
256
263
|
case SSL_ERROR_WANT_WRITE:
|
257
264
|
{
|
258
|
-
|
259
|
-
if(send())
|
265
|
+
if(_memBio && send())
|
260
266
|
{
|
261
267
|
continue;
|
262
268
|
}
|
263
|
-
#endif
|
264
269
|
return IceInternal::SocketOperationWrite;
|
265
270
|
}
|
266
271
|
case SSL_ERROR_SYSCALL:
|
267
272
|
{
|
268
|
-
|
269
|
-
if(IceInternal::interrupted())
|
270
|
-
{
|
271
|
-
break;
|
272
|
-
}
|
273
|
-
|
274
|
-
if(IceInternal::wouldBlock())
|
273
|
+
if(!_memBio)
|
275
274
|
{
|
276
|
-
if(
|
275
|
+
if(IceInternal::interrupted())
|
277
276
|
{
|
278
|
-
|
277
|
+
break;
|
279
278
|
}
|
280
|
-
|
279
|
+
|
280
|
+
if(IceInternal::wouldBlock())
|
281
281
|
{
|
282
|
-
|
282
|
+
if(SSL_want_read(_ssl))
|
283
|
+
{
|
284
|
+
return IceInternal::SocketOperationRead;
|
285
|
+
}
|
286
|
+
else if(SSL_want_write(_ssl))
|
287
|
+
{
|
288
|
+
return IceInternal::SocketOperationWrite;
|
289
|
+
}
|
290
|
+
|
291
|
+
break;
|
283
292
|
}
|
284
293
|
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
{
|
290
|
-
ConnectionLostException ex(__FILE__, __LINE__);
|
291
|
-
ex.error = IceInternal::getSocketErrno();
|
292
|
-
throw ex;
|
294
|
+
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
295
|
+
{
|
296
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
297
|
+
}
|
293
298
|
}
|
294
|
-
|
295
|
-
SocketException ex(__FILE__, __LINE__);
|
296
|
-
ex.error = IceInternal::getSocketErrno();
|
297
|
-
throw ex;
|
299
|
+
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
298
300
|
}
|
299
301
|
case SSL_ERROR_SSL:
|
300
302
|
{
|
301
303
|
ostringstream ostr;
|
302
304
|
ostr << "SSL error occurred for new " << (_incoming ? "incoming" : "outgoing")
|
303
|
-
<< " connection:\
|
304
|
-
ProtocolException
|
305
|
-
ex.reason = ostr.str();
|
306
|
-
throw ex;
|
305
|
+
<< " connection:\n" << _delegate->toString() << "\n" << _engine->sslErrors();
|
306
|
+
throw ProtocolException(__FILE__, __LINE__, ostr.str());
|
307
307
|
}
|
308
308
|
}
|
309
309
|
}
|
@@ -325,14 +325,12 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
325
325
|
{
|
326
326
|
ostringstream ostr;
|
327
327
|
ostr << "IceSSL: certificate verification failed:\n" << X509_verify_cert_error_string(result);
|
328
|
-
string msg = ostr.str();
|
328
|
+
const string msg = ostr.str();
|
329
329
|
if(_engine->securityTraceLevel() >= 1)
|
330
330
|
{
|
331
331
|
_instance->logger()->trace(_instance->traceCategory(), msg);
|
332
332
|
}
|
333
|
-
SecurityException
|
334
|
-
ex.reason = msg;
|
335
|
-
throw ex;
|
333
|
+
throw SecurityException(__FILE__, __LINE__, msg);
|
336
334
|
}
|
337
335
|
}
|
338
336
|
else
|
@@ -341,6 +339,24 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
341
339
|
}
|
342
340
|
|
343
341
|
_cipher = SSL_get_cipher_name(_ssl); // Nothing needs to be free'd.
|
342
|
+
#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10002000L
|
343
|
+
try
|
344
|
+
{
|
345
|
+
//
|
346
|
+
// Peer hostname verification is new in OpenSSL 1.0.2 for older versions
|
347
|
+
// We use IceSSL built-in hostname verification.
|
348
|
+
//
|
349
|
+
_engine->verifyPeerCertName(_host, ICE_DYNAMIC_CAST(ConnectionInfo, getInfo()));
|
350
|
+
}
|
351
|
+
catch(const SecurityException&)
|
352
|
+
{
|
353
|
+
_verified = false;
|
354
|
+
if(_engine->getVerifyPeer() > 0)
|
355
|
+
{
|
356
|
+
throw;
|
357
|
+
}
|
358
|
+
}
|
359
|
+
#endif
|
344
360
|
_engine->verifyPeer(_host, ICE_DYNAMIC_CAST(ConnectionInfo, getInfo()), toString());
|
345
361
|
|
346
362
|
if(_engine->securityTraceLevel() >= 1)
|
@@ -363,7 +379,7 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
|
|
363
379
|
out << "bits = " << SSL_CIPHER_get_bits(cipher, 0) << "\n";
|
364
380
|
out << "protocol = " << SSL_get_version(_ssl) << "\n";
|
365
381
|
}
|
366
|
-
out <<
|
382
|
+
out << toString();
|
367
383
|
}
|
368
384
|
|
369
385
|
return IceInternal::SocketOperationNone;
|
@@ -396,13 +412,11 @@ OpenSSL::TransceiverI::close()
|
|
396
412
|
_ssl = 0;
|
397
413
|
}
|
398
414
|
|
399
|
-
|
400
|
-
if(_iocpBio)
|
415
|
+
if(_memBio)
|
401
416
|
{
|
402
|
-
BIO_free(
|
403
|
-
|
417
|
+
BIO_free(_memBio);
|
418
|
+
_memBio = 0;
|
404
419
|
}
|
405
|
-
#endif
|
406
420
|
|
407
421
|
_delegate->close();
|
408
422
|
}
|
@@ -415,15 +429,13 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
415
429
|
return _delegate->write(buf);
|
416
430
|
}
|
417
431
|
|
418
|
-
|
419
|
-
if(_writeBuffer.i != _writeBuffer.b.end())
|
432
|
+
if(_memBio && _writeBuffer.i != _writeBuffer.b.end())
|
420
433
|
{
|
421
434
|
if(!send())
|
422
435
|
{
|
423
436
|
return IceInternal::SocketOperationWrite;
|
424
437
|
}
|
425
438
|
}
|
426
|
-
#endif
|
427
439
|
|
428
440
|
if(buf.i == buf.b.end())
|
429
441
|
{
|
@@ -433,37 +445,39 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
433
445
|
//
|
434
446
|
// It's impossible for packetSize to be more than an Int.
|
435
447
|
//
|
436
|
-
int packetSize =
|
437
|
-
|
438
|
-
std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buf.b.end() - buf.i));
|
439
|
-
#else
|
448
|
+
int packetSize = _memBio ?
|
449
|
+
std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buf.b.end() - buf.i)) :
|
440
450
|
static_cast<int>(buf.b.end() - buf.i);
|
441
|
-
|
451
|
+
|
442
452
|
while(buf.i != buf.b.end())
|
443
453
|
{
|
444
454
|
ERR_clear_error(); // Clear any spurious errors.
|
445
|
-
#ifdef ICE_USE_IOCP
|
446
455
|
int ret;
|
447
|
-
if(
|
456
|
+
if(_memBio)
|
448
457
|
{
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
if(ret > 0)
|
458
|
+
if(_sentBytes)
|
459
|
+
{
|
460
|
+
ret = _sentBytes;
|
461
|
+
_sentBytes = 0;
|
462
|
+
}
|
463
|
+
else
|
456
464
|
{
|
457
|
-
|
465
|
+
ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize);
|
466
|
+
if(ret > 0)
|
458
467
|
{
|
459
|
-
|
460
|
-
|
468
|
+
if(!send())
|
469
|
+
{
|
470
|
+
_sentBytes = ret;
|
471
|
+
return IceInternal::SocketOperationWrite;
|
472
|
+
}
|
461
473
|
}
|
462
474
|
}
|
463
475
|
}
|
464
|
-
|
465
|
-
|
466
|
-
|
476
|
+
else
|
477
|
+
{
|
478
|
+
ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize);
|
479
|
+
}
|
480
|
+
|
467
481
|
if(ret <= 0)
|
468
482
|
{
|
469
483
|
switch(SSL_get_error(_ssl, ret))
|
@@ -473,9 +487,7 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
473
487
|
break;
|
474
488
|
case SSL_ERROR_ZERO_RETURN:
|
475
489
|
{
|
476
|
-
ConnectionLostException
|
477
|
-
ex.error = IceInternal::getSocketErrno();
|
478
|
-
throw ex;
|
490
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
479
491
|
}
|
480
492
|
case SSL_ERROR_WANT_READ:
|
481
493
|
{
|
@@ -484,53 +496,47 @@ OpenSSL::TransceiverI::write(IceInternal::Buffer& buf)
|
|
484
496
|
}
|
485
497
|
case SSL_ERROR_WANT_WRITE:
|
486
498
|
{
|
487
|
-
|
488
|
-
if(send())
|
499
|
+
if(_memBio && send())
|
489
500
|
{
|
490
501
|
continue;
|
491
502
|
}
|
492
|
-
#endif
|
493
503
|
return IceInternal::SocketOperationWrite;
|
494
504
|
}
|
495
505
|
case SSL_ERROR_SYSCALL:
|
496
506
|
{
|
497
|
-
|
498
|
-
|
499
|
-
if(IceInternal::interrupted())
|
507
|
+
if(!_memBio)
|
500
508
|
{
|
501
|
-
|
502
|
-
|
509
|
+
if(IceInternal::interrupted())
|
510
|
+
{
|
511
|
+
continue;
|
512
|
+
}
|
503
513
|
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
514
|
+
if(IceInternal::noBuffers() && packetSize > 1024)
|
515
|
+
{
|
516
|
+
packetSize /= 2;
|
517
|
+
continue;
|
518
|
+
}
|
509
519
|
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
520
|
+
if(IceInternal::wouldBlock())
|
521
|
+
{
|
522
|
+
assert(SSL_want_write(_ssl));
|
523
|
+
return IceInternal::SocketOperationWrite;
|
524
|
+
}
|
514
525
|
}
|
515
|
-
|
526
|
+
|
516
527
|
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
517
528
|
{
|
518
|
-
ConnectionLostException
|
519
|
-
ex.error = IceInternal::getSocketErrno();
|
520
|
-
throw ex;
|
529
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
521
530
|
}
|
522
531
|
else
|
523
532
|
{
|
524
|
-
SocketException
|
525
|
-
ex.error = IceInternal::getSocketErrno();
|
526
|
-
throw ex;
|
533
|
+
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
527
534
|
}
|
528
535
|
}
|
529
536
|
case SSL_ERROR_SSL:
|
530
537
|
{
|
531
|
-
ProtocolException
|
532
|
-
|
533
|
-
throw ex;
|
538
|
+
throw ProtocolException(__FILE__, __LINE__,
|
539
|
+
"SSL protocol error during write:\n" + _engine->sslErrors());
|
534
540
|
}
|
535
541
|
}
|
536
542
|
}
|
@@ -553,15 +559,13 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
553
559
|
return _delegate->read(buf);
|
554
560
|
}
|
555
561
|
|
556
|
-
|
557
|
-
if(_readBuffer.i != _readBuffer.b.end())
|
562
|
+
if(_memBio && _readBuffer.i != _readBuffer.b.end())
|
558
563
|
{
|
559
564
|
if(!receive())
|
560
565
|
{
|
561
566
|
return IceInternal::SocketOperationRead;
|
562
567
|
}
|
563
568
|
}
|
564
|
-
#endif
|
565
569
|
|
566
570
|
//
|
567
571
|
// Note: We assume that OpenSSL doesn't read more SSL records than
|
@@ -595,18 +599,14 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
595
599
|
}
|
596
600
|
case SSL_ERROR_ZERO_RETURN:
|
597
601
|
{
|
598
|
-
ConnectionLostException
|
599
|
-
ex.error = 0;
|
600
|
-
throw ex;
|
602
|
+
throw ConnectionLostException(__FILE__, __LINE__, 0);
|
601
603
|
}
|
602
604
|
case SSL_ERROR_WANT_READ:
|
603
605
|
{
|
604
|
-
|
605
|
-
if(receive())
|
606
|
+
if(_memBio && receive())
|
606
607
|
{
|
607
608
|
continue;
|
608
609
|
}
|
609
|
-
#endif
|
610
610
|
return IceInternal::SocketOperationRead;
|
611
611
|
}
|
612
612
|
case SSL_ERROR_WANT_WRITE:
|
@@ -616,42 +616,39 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
|
|
616
616
|
}
|
617
617
|
case SSL_ERROR_SYSCALL:
|
618
618
|
{
|
619
|
-
|
620
|
-
if(IceInternal::interrupted())
|
619
|
+
if(!_memBio)
|
621
620
|
{
|
622
|
-
|
623
|
-
|
621
|
+
if(IceInternal::interrupted())
|
622
|
+
{
|
623
|
+
continue;
|
624
|
+
}
|
624
625
|
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
626
|
+
if(IceInternal::noBuffers() && packetSize > 1024)
|
627
|
+
{
|
628
|
+
packetSize /= 2;
|
629
|
+
continue;
|
630
|
+
}
|
630
631
|
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
632
|
+
if(IceInternal::wouldBlock())
|
633
|
+
{
|
634
|
+
assert(SSL_want_read(_ssl));
|
635
|
+
return IceInternal::SocketOperationRead;
|
636
|
+
}
|
635
637
|
}
|
636
|
-
|
638
|
+
|
637
639
|
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
638
640
|
{
|
639
|
-
ConnectionLostException
|
640
|
-
ex.error = IceInternal::getSocketErrno();
|
641
|
-
throw ex;
|
641
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
642
642
|
}
|
643
643
|
else
|
644
644
|
{
|
645
|
-
SocketException
|
646
|
-
ex.error = IceInternal::getSocketErrno();
|
647
|
-
throw ex;
|
645
|
+
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
648
646
|
}
|
649
647
|
}
|
650
648
|
case SSL_ERROR_SSL:
|
651
649
|
{
|
652
|
-
ProtocolException
|
653
|
-
|
654
|
-
throw ex;
|
650
|
+
throw ProtocolException(__FILE__, __LINE__,
|
651
|
+
"SSL protocol error during read:\n" + _engine->sslErrors());
|
655
652
|
}
|
656
653
|
}
|
657
654
|
}
|
@@ -688,10 +685,10 @@ OpenSSL::TransceiverI::startWrite(IceInternal::Buffer& buffer)
|
|
688
685
|
int packetSize = std::min(static_cast<int>(_maxSendPacketSize), static_cast<int>(buffer.b.end() - buffer.i));
|
689
686
|
_sentBytes = SSL_write(_ssl, reinterpret_cast<void*>(&*buffer.i), packetSize);
|
690
687
|
|
691
|
-
assert(BIO_ctrl_pending(
|
692
|
-
_writeBuffer.b.resize( BIO_ctrl_pending(
|
688
|
+
assert(BIO_ctrl_pending(_memBio));
|
689
|
+
_writeBuffer.b.resize( BIO_ctrl_pending(_memBio));
|
693
690
|
_writeBuffer.i = _writeBuffer.b.begin();
|
694
|
-
BIO_read(
|
691
|
+
BIO_read(_memBio, _writeBuffer.i, static_cast<int>(_writeBuffer.b.size()));
|
695
692
|
}
|
696
693
|
|
697
694
|
return _delegate->startWrite(_writeBuffer) && buffer.i == buffer.b.end();
|
@@ -733,8 +730,8 @@ OpenSSL::TransceiverI::startRead(IceInternal::Buffer& buffer)
|
|
733
730
|
SSL_read(_ssl, reinterpret_cast<void*>(&*buffer.i), static_cast<int>(buffer.b.end() - buffer.i));
|
734
731
|
assert(ret <= 0 && SSL_get_error(_ssl, ret) == SSL_ERROR_WANT_READ);
|
735
732
|
|
736
|
-
assert(BIO_ctrl_get_read_request(
|
737
|
-
_readBuffer.b.resize(BIO_ctrl_get_read_request(
|
733
|
+
assert(BIO_ctrl_get_read_request(_memBio));
|
734
|
+
_readBuffer.b.resize(BIO_ctrl_get_read_request(_memBio));
|
738
735
|
_readBuffer.i = _readBuffer.b.begin();
|
739
736
|
}
|
740
737
|
|
@@ -755,12 +752,10 @@ OpenSSL::TransceiverI::finishRead(IceInternal::Buffer& buffer)
|
|
755
752
|
_delegate->finishRead(_readBuffer);
|
756
753
|
if(_readBuffer.i == _readBuffer.b.end())
|
757
754
|
{
|
758
|
-
int n = BIO_write(
|
755
|
+
int n = BIO_write(_memBio, _readBuffer.b.begin(), static_cast<int>(_readBuffer.b.size()));
|
759
756
|
if(n < 0) // Expected if the transceiver was closed.
|
760
757
|
{
|
761
|
-
SecurityException
|
762
|
-
ex.reason = "SSL bio write failed";
|
763
|
-
throw ex;
|
758
|
+
throw SecurityException(__FILE__, __LINE__, "SSL bio write failed");
|
764
759
|
}
|
765
760
|
|
766
761
|
assert(n == static_cast<int>(_readBuffer.b.size()));
|
@@ -778,9 +773,7 @@ OpenSSL::TransceiverI::finishRead(IceInternal::Buffer& buffer)
|
|
778
773
|
}
|
779
774
|
case SSL_ERROR_ZERO_RETURN:
|
780
775
|
{
|
781
|
-
ConnectionLostException
|
782
|
-
ex.error = 0;
|
783
|
-
throw ex;
|
776
|
+
throw ConnectionLostException(__FILE__, __LINE__, 0);
|
784
777
|
}
|
785
778
|
case SSL_ERROR_WANT_READ:
|
786
779
|
{
|
@@ -790,22 +783,17 @@ OpenSSL::TransceiverI::finishRead(IceInternal::Buffer& buffer)
|
|
790
783
|
{
|
791
784
|
if(IceInternal::connectionLost() || IceInternal::getSocketErrno() == 0)
|
792
785
|
{
|
793
|
-
ConnectionLostException
|
794
|
-
ex.error = IceInternal::getSocketErrno();
|
795
|
-
throw ex;
|
786
|
+
throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
796
787
|
}
|
797
788
|
else
|
798
789
|
{
|
799
|
-
SocketException
|
800
|
-
ex.error = IceInternal::getSocketErrno();
|
801
|
-
throw ex;
|
790
|
+
throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno());
|
802
791
|
}
|
803
792
|
}
|
804
793
|
case SSL_ERROR_SSL:
|
805
794
|
{
|
806
|
-
ProtocolException
|
807
|
-
|
808
|
-
throw ex;
|
795
|
+
throw ProtocolException(__FILE__, __LINE__,
|
796
|
+
"SSL protocol error during read:\n" + _engine->sslErrors());
|
809
797
|
}
|
810
798
|
}
|
811
799
|
}
|
@@ -874,7 +862,7 @@ OpenSSL::TransceiverI::verifyCallback(int ok, X509_STORE_CTX* c)
|
|
874
862
|
out << "subject = " << buf << '\n';
|
875
863
|
out << "depth = " << X509_STORE_CTX_get_error_depth(c) << '\n';
|
876
864
|
out << "error = " << X509_verify_cert_error_string(err) << '\n';
|
877
|
-
out <<
|
865
|
+
out << toString();
|
878
866
|
}
|
879
867
|
|
880
868
|
//
|
@@ -914,13 +902,11 @@ OpenSSL::TransceiverI::TransceiverI(const InstancePtr& instance,
|
|
914
902
|
_delegate(delegate),
|
915
903
|
_connected(false),
|
916
904
|
_verified(false),
|
917
|
-
_ssl(0)
|
918
|
-
|
919
|
-
, _iocpBio(0),
|
905
|
+
_ssl(0),
|
906
|
+
_memBio(0),
|
920
907
|
_sentBytes(0),
|
921
908
|
_maxSendPacketSize(0),
|
922
909
|
_maxRecvPacketSize(0)
|
923
|
-
#endif
|
924
910
|
{
|
925
911
|
}
|
926
912
|
|
@@ -928,14 +914,13 @@ OpenSSL::TransceiverI::~TransceiverI()
|
|
928
914
|
{
|
929
915
|
}
|
930
916
|
|
931
|
-
#ifdef ICE_USE_IOCP
|
932
917
|
bool
|
933
918
|
OpenSSL::TransceiverI::receive()
|
934
919
|
{
|
935
920
|
if(_readBuffer.i == _readBuffer.b.end())
|
936
921
|
{
|
937
|
-
assert(BIO_ctrl_get_read_request(
|
938
|
-
_readBuffer.b.resize(BIO_ctrl_get_read_request(
|
922
|
+
assert(BIO_ctrl_get_read_request(_memBio));
|
923
|
+
_readBuffer.b.resize(BIO_ctrl_get_read_request(_memBio));
|
939
924
|
_readBuffer.i = _readBuffer.b.begin();
|
940
925
|
}
|
941
926
|
|
@@ -952,7 +937,7 @@ OpenSSL::TransceiverI::receive()
|
|
952
937
|
#ifndef NDEBUG
|
953
938
|
int n =
|
954
939
|
#endif
|
955
|
-
BIO_write(
|
940
|
+
BIO_write(_memBio, &_readBuffer.b[0], static_cast<int>(_readBuffer.b.end() - _readBuffer.b.begin()));
|
956
941
|
|
957
942
|
assert(n == static_cast<int>(_readBuffer.b.end() - _readBuffer.b.begin()));
|
958
943
|
|
@@ -964,10 +949,10 @@ OpenSSL::TransceiverI::send()
|
|
964
949
|
{
|
965
950
|
if(_writeBuffer.i == _writeBuffer.b.end())
|
966
951
|
{
|
967
|
-
assert(BIO_ctrl_pending(
|
968
|
-
_writeBuffer.b.resize( BIO_ctrl_pending(
|
952
|
+
assert(BIO_ctrl_pending(_memBio));
|
953
|
+
_writeBuffer.b.resize( BIO_ctrl_pending(_memBio));
|
969
954
|
_writeBuffer.i = _writeBuffer.b.begin();
|
970
|
-
BIO_read(
|
955
|
+
BIO_read(_memBio, _writeBuffer.i, static_cast<int>(_writeBuffer.b.size()));
|
971
956
|
}
|
972
957
|
|
973
958
|
if(_writeBuffer.i != _writeBuffer.b.end())
|
@@ -979,4 +964,3 @@ OpenSSL::TransceiverI::send()
|
|
979
964
|
}
|
980
965
|
return _writeBuffer.i == _writeBuffer.b.end();
|
981
966
|
}
|
982
|
-
#endif
|