zeroc-ice 3.6.5 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/BZIP2_LICENSE +42 -0
- data/ICE_LICENSE +17 -17
- data/LICENSE +12 -12
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +150 -53
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +2 -12
- data/ext/Connection.cpp +89 -68
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +16 -45
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -5
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +4 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/Operation.cpp +33 -44
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +22 -57
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +5 -5
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +244 -171
- data/ext/Types.h +118 -66
- data/ext/Util.cpp +13 -9
- data/ext/Util.h +10 -10
- data/ext/ValueFactoryManager.cpp +445 -0
- data/ext/ValueFactoryManager.h +100 -0
- data/ext/extconf.rb +47 -45
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/Application.h +77 -60
- data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
- data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
- data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
- data/ext/ice/cpp/include/Ice/Config.h +7 -36
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
- data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
- data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Exception.h +66 -56
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
- data/ext/ice/cpp/include/Ice/Format.h +6 -1
- data/ext/ice/cpp/include/Ice/Functional.h +33 -33
- data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
- data/ext/ice/cpp/include/Ice/Handle.h +6 -11
- data/ext/ice/cpp/include/Ice/Ice.h +9 -5
- data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
- data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
- data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
- data/ext/ice/cpp/include/Ice/Object.h +105 -56
- data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
- data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
- data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
- data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
- data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +13 -18
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
- data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
- data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
- data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
- data/ext/ice/cpp/include/Ice/Value.h +104 -0
- data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
- data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
- data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
- data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
- data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
- data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
- data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
- data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
- data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
- data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
- data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
- data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
- data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
- data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
- data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
- data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
- data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
- data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
- data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
- data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
- data/ext/ice/cpp/src/Ice/ACM.h +9 -2
- data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
- data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
- data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
- data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
- data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
- data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
- data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
- data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
- data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Connector.h +4 -3
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
- data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
- data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
- data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
- data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
- data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
- data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
- data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
- data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
- data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
- data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
- data/ext/ice/cpp/src/Ice/Instance.h +30 -18
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
- data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
- data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
- data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
- data/ext/ice/cpp/src/Ice/Network.h +100 -23
- data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
- data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
- data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
- data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
- data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
- data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
- data/ext/ice/cpp/src/Ice/Reference.h +27 -22
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
- data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
- data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
- data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
- data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
- data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
- data/ext/ice/cpp/src/Ice/Selector.h +100 -147
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
- data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
- data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
- data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
- data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
- data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
- data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
- data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
- data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
- data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
- data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
- data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
- data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
- data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
- data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
- data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
- data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
- data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
- data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
- data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
- data/ext/ice/cpp/src/Slice/MD5.h +1 -1
- data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
- data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
- data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
- data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
- data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
- data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
- data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
- data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
- data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
- data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
- data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
- data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
- data/ext/ice/cpp/src/Slice/Util.h +54 -0
- data/ext/ice/mcpp/Makefile +5 -2
- data/ice.gemspec +2 -7
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +7 -46
- data/lib/Glacier2/PermissionsVerifier.rb +24 -95
- data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
- data/lib/Glacier2/Router.rb +32 -74
- data/lib/Glacier2/RouterF.rb +3 -3
- data/lib/Glacier2/SSLInfo.rb +4 -7
- data/lib/Glacier2/Session.rb +88 -307
- data/lib/Ice.rb +83 -52
- data/lib/Ice/BuiltinSequences.rb +4 -4
- data/lib/Ice/Communicator.rb +56 -58
- data/lib/Ice/CommunicatorF.rb +3 -3
- data/lib/Ice/Connection.rb +153 -162
- data/lib/Ice/ConnectionF.rb +3 -3
- data/lib/Ice/Current.rb +4 -11
- data/lib/Ice/Endpoint.rb +57 -133
- data/lib/Ice/EndpointF.rb +3 -3
- data/lib/Ice/EndpointTypes.rb +3 -7
- data/lib/Ice/FacetMap.rb +4 -4
- data/lib/Ice/Identity.rb +5 -8
- data/lib/Ice/ImplicitContext.rb +5 -34
- data/lib/Ice/ImplicitContextF.rb +3 -3
- data/lib/Ice/Instrumentation.rb +23 -275
- data/lib/Ice/InstrumentationF.rb +3 -3
- data/lib/Ice/LocalException.rb +95 -141
- data/lib/Ice/Locator.rb +51 -165
- data/lib/Ice/LocatorF.rb +3 -3
- data/lib/Ice/Logger.rb +5 -34
- data/lib/Ice/LoggerF.rb +3 -3
- data/lib/Ice/Metrics.rb +61 -416
- data/lib/Ice/ObjectAdapter.rb +34 -0
- data/lib/Ice/ObjectAdapterF.rb +3 -3
- data/lib/Ice/ObjectFactory.rb +5 -30
- data/lib/Ice/Plugin.rb +7 -60
- data/lib/Ice/PluginF.rb +3 -3
- data/lib/Ice/Process.rb +16 -52
- data/lib/Ice/ProcessF.rb +3 -3
- data/lib/Ice/Properties.rb +5 -41
- data/lib/Ice/PropertiesAdmin.rb +19 -56
- data/lib/Ice/PropertiesF.rb +3 -3
- data/lib/Ice/RemoteLogger.rb +34 -115
- data/lib/Ice/Router.rb +29 -101
- data/lib/Ice/RouterF.rb +3 -3
- data/lib/Ice/ServantLocator.rb +31 -0
- data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
- data/lib/Ice/SliceChecksumDict.rb +3 -3
- data/lib/Ice/ValueFactory.rb +33 -0
- data/lib/Ice/Version.rb +5 -11
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +44 -148
- data/lib/IceGrid.rb +1 -4
- data/lib/IceGrid/Admin.rb +551 -427
- data/lib/IceGrid/Descriptor.rb +62 -529
- data/lib/IceGrid/Exception.rb +24 -45
- data/lib/IceGrid/FileParser.rb +14 -50
- data/lib/IceGrid/PluginFacade.rb +40 -0
- data/lib/IceGrid/Registry.rb +151 -58
- data/lib/IceGrid/Session.rb +25 -64
- data/lib/IceGrid/UserAccountMapper.rb +14 -50
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +5 -11
- data/lib/IcePatch2/FileServer.rb +33 -76
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +79 -206
- data/lib/IceStorm/Metrics.rb +11 -89
- data/slice/Glacier2/Metrics.ice +8 -4
- data/slice/Glacier2/PermissionsVerifier.ice +10 -7
- data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
- data/slice/Glacier2/Router.ice +10 -8
- data/slice/Glacier2/RouterF.ice +7 -4
- data/slice/Glacier2/SSLInfo.ice +8 -5
- data/slice/Glacier2/Session.ice +15 -13
- data/slice/Ice/BuiltinSequences.ice +7 -4
- data/slice/Ice/Communicator.ice +141 -66
- data/slice/Ice/CommunicatorF.ice +7 -4
- data/slice/Ice/Connection.ice +183 -86
- data/slice/Ice/ConnectionF.ice +7 -4
- data/slice/Ice/Current.ice +13 -9
- data/slice/Ice/Endpoint.ice +63 -14
- data/slice/Ice/EndpointF.ice +7 -4
- data/slice/Ice/EndpointTypes.ice +8 -6
- data/slice/Ice/FacetMap.ice +7 -4
- data/slice/Ice/Identity.ice +13 -5
- data/slice/Ice/ImplicitContext.ice +20 -18
- data/slice/Ice/ImplicitContextF.ice +7 -4
- data/slice/Ice/Instrumentation.ice +20 -19
- data/slice/Ice/InstrumentationF.ice +8 -5
- data/slice/Ice/LocalException.ice +87 -87
- data/slice/Ice/Locator.ice +19 -18
- data/slice/Ice/LocatorF.ice +7 -4
- data/slice/Ice/Logger.ice +9 -7
- data/slice/Ice/LoggerF.ice +7 -4
- data/slice/Ice/Metrics.ice +18 -14
- data/slice/Ice/ObjectAdapter.ice +30 -13
- data/slice/Ice/ObjectAdapterF.ice +7 -4
- data/slice/Ice/ObjectFactory.ice +15 -12
- data/slice/Ice/Plugin.ice +9 -6
- data/slice/Ice/PluginF.ice +8 -5
- data/slice/Ice/Process.ice +9 -6
- data/slice/Ice/ProcessF.ice +7 -4
- data/slice/Ice/Properties.ice +15 -12
- data/slice/Ice/PropertiesAdmin.ice +9 -5
- data/slice/Ice/PropertiesF.ice +7 -4
- data/slice/Ice/RemoteLogger.ice +33 -24
- data/slice/Ice/Router.ice +16 -7
- data/slice/Ice/RouterF.ice +7 -4
- data/slice/Ice/ServantLocator.ice +13 -10
- data/slice/Ice/ServantLocatorF.ice +7 -4
- data/slice/Ice/SliceChecksumDict.ice +7 -4
- data/slice/Ice/ValueFactory.ice +127 -0
- data/slice/Ice/Version.ice +9 -5
- data/slice/IceBT/ConnectionInfo.ice +53 -0
- data/slice/IceBT/EndpointInfo.ice +51 -0
- data/slice/IceBT/Types.ice +39 -0
- data/slice/IceBox/IceBox.ice +20 -21
- data/slice/IceDiscovery/IceDiscovery.ice +9 -5
- data/slice/IceGrid/Admin.ice +390 -30
- data/slice/IceGrid/Descriptor.ice +37 -29
- data/slice/IceGrid/Exception.ice +33 -27
- data/slice/IceGrid/FileParser.ice +9 -6
- data/slice/IceGrid/PluginFacade.ice +11 -9
- data/slice/IceGrid/Registry.ice +139 -16
- data/slice/IceGrid/Session.ice +10 -8
- data/slice/IceGrid/UserAccountMapper.ice +9 -6
- data/slice/IceIAP/ConnectionInfo.ice +70 -0
- data/slice/IceIAP/EndpointInfo.ice +64 -0
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
- data/slice/IcePatch2/FileInfo.ice +9 -8
- data/slice/IcePatch2/FileServer.ice +17 -13
- data/slice/IceSSL/ConnectionInfo.ice +14 -17
- data/slice/IceSSL/ConnectionInfoF.ice +24 -0
- data/slice/IceSSL/EndpointInfo.ice +9 -30
- data/slice/IceStorm/IceStorm.ice +22 -18
- data/slice/IceStorm/Metrics.ice +9 -5
- metadata +154 -120
- data/ext/ObjectFactory.cpp +0 -140
- data/ext/ObjectFactory.h +0 -50
- data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
- data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
- data/ext/ice/cpp/include/Ice/Connection.h +0 -497
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
- data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
- data/ext/ice/cpp/include/Ice/Identity.h +0 -168
- data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
- data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
- data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
- data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
- data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
- data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
- data/ext/ice/cpp/include/Ice/Process.h +0 -574
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
- data/ext/ice/cpp/include/Ice/Router.h +0 -1159
- data/ext/ice/cpp/include/Ice/Stream.h +0 -447
- data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
- data/ext/ice/cpp/include/Ice/Version.h +0 -262
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
- data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
- data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
- data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
- data/ext/ice/cpp/include/Slice/Util.h +0 -56
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
- data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
- data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
- data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
- data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
- data/lib/IceGrid/Locator.rb +0 -106
- data/lib/IceGrid/Observer.rb +0 -572
- data/lib/IceGrid/Query.rb +0 -169
- data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
- data/slice/Freeze/CatalogData.ice +0 -49
- data/slice/Freeze/Connection.ice +0 -121
- data/slice/Freeze/DB.ice +0 -37
- data/slice/Freeze/Evictor.ice +0 -346
- data/slice/Freeze/EvictorF.ice +0 -22
- data/slice/Freeze/EvictorStorage.ice +0 -72
- data/slice/Freeze/Exception.ice +0 -100
- data/slice/Freeze/Transaction.ice +0 -58
- data/slice/Freeze/TransactionalEvictor.ice +0 -50
- data/slice/IceGrid/Locator.ice +0 -57
- data/slice/IceGrid/Observer.ice +0 -395
- data/slice/IceGrid/Query.ice +0 -131
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
#ifndef ICE_VALUE_F_H
|
|
11
|
+
#define ICE_VALUE_F_H
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
#ifdef ICE_CPP11_MAPPING
|
|
14
|
+
#include <Ice/Config.h>
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
namespace Ice
|
|
15
17
|
{
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
19
|
+
class Value;
|
|
20
|
+
using ValuePtr = ::std::shared_ptr<Value>;
|
|
20
21
|
|
|
22
|
+
}
|
|
23
|
+
#endif
|
|
24
|
+
#endif
|
|
@@ -1,41 +1,26 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#ifndef
|
|
11
|
-
#define
|
|
10
|
+
#ifndef ICESSL_CONFIG_H
|
|
11
|
+
#define ICESSL_CONFIG_H
|
|
12
12
|
|
|
13
13
|
#include <Ice/Config.h>
|
|
14
14
|
|
|
15
15
|
//
|
|
16
|
-
// Automatically link IceSSL[D].lib with Visual C++
|
|
16
|
+
// Automatically link IceSSL[D|++11|++11D].lib with Visual C++
|
|
17
17
|
//
|
|
18
|
-
|
|
19
|
-
#
|
|
20
|
-
# define ICE_BUILDING_ICE_SSL
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#if defined(_MSC_VER)
|
|
24
|
-
# if !defined(ICE_BUILDING_ICE_SSL)
|
|
25
|
-
# if defined(_DEBUG) && !defined(ICE_OS_WINRT)
|
|
26
|
-
# pragma comment(lib, "IceSSLD.lib")
|
|
27
|
-
# else
|
|
28
|
-
# pragma comment(lib, "IceSSL.lib")
|
|
29
|
-
# endif
|
|
30
|
-
# endif
|
|
18
|
+
#if !defined(ICE_BUILDING_ICESSL) && defined(ICESSL_API_EXPORTS)
|
|
19
|
+
# define ICE_BUILDING_ICESSL
|
|
31
20
|
#endif
|
|
32
21
|
|
|
33
|
-
#if defined(
|
|
34
|
-
#
|
|
35
|
-
#elif defined(_WIN32)
|
|
36
|
-
# define ICE_USE_SCHANNEL 1
|
|
37
|
-
#else
|
|
38
|
-
# define ICE_USE_OPENSSL 1
|
|
22
|
+
#if defined(_MSC_VER) && !defined(ICE_BUILDING_ICESSL)
|
|
23
|
+
# pragma comment(lib, ICE_LIBNAME("IceSSL"))
|
|
39
24
|
#endif
|
|
40
25
|
|
|
41
26
|
#endif
|
|
@@ -1,20 +1,31 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#ifndef
|
|
11
|
-
#define
|
|
10
|
+
#ifndef ICESSL_ICESSL_H
|
|
11
|
+
#define ICESSL_ICESSL_H
|
|
12
12
|
|
|
13
13
|
#include <IceUtil/PushDisableWarnings.h>
|
|
14
|
-
#include <
|
|
15
|
-
#
|
|
16
|
-
|
|
14
|
+
#include <Ice/Config.h>
|
|
15
|
+
#include <IceSSL/Plugin.h>
|
|
16
|
+
|
|
17
|
+
#if defined(_WIN32)
|
|
18
|
+
# if defined(ICE_OS_UWP)
|
|
19
|
+
# include <IceSSL/UWP.h>
|
|
20
|
+
# else
|
|
21
|
+
# include <IceSSL/SChannel.h>
|
|
22
|
+
# endif
|
|
23
|
+
#elif defined(__APPLE__)
|
|
24
|
+
# include <IceSSL/SecureTransport.h>
|
|
25
|
+
#else
|
|
26
|
+
# include <IceSSL/OpenSSL.h>
|
|
17
27
|
#endif
|
|
28
|
+
|
|
18
29
|
#include <IceSSL/EndpointInfo.h>
|
|
19
30
|
#include <IceSSL/ConnectionInfo.h>
|
|
20
31
|
#include <IceUtil/PopDisableWarnings.h>
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICESSL_OPENSSL_H
|
|
11
|
+
#define ICESSL_OPENSSL_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/Plugin.h>
|
|
14
|
+
|
|
15
|
+
#include <openssl/x509v3.h>
|
|
16
|
+
#include <openssl/pem.h>
|
|
17
|
+
|
|
18
|
+
//
|
|
19
|
+
// Automatically link IceSSLOpenSSL[D|++11|++11D].lib with Visual C++
|
|
20
|
+
//
|
|
21
|
+
#if defined(_MSC_VER)
|
|
22
|
+
# if !defined(ICE_BUILDING_ICESSL_OPENSSL) && defined(ICESSL_OPENSSL_API_EXPORTS)
|
|
23
|
+
# define ICE_BUILDING_ICESSL_OPENSSL
|
|
24
|
+
# endif
|
|
25
|
+
|
|
26
|
+
# if !defined(ICE_BUILDING_ICESSL_OPENSSL)
|
|
27
|
+
# pragma comment(lib, ICE_LIBNAME("IceSSLOpenSSL"))
|
|
28
|
+
# endif
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#ifndef ICESSL_OPENSSL_API
|
|
32
|
+
# if defined(ICE_STATIC_LIBS)
|
|
33
|
+
# define ICESSL_OPENSSL_API /**/
|
|
34
|
+
# elif defined(ICESSL_OPENSSL_API_EXPORTS)
|
|
35
|
+
# define ICESSL_OPENSSL_API ICE_DECLSPEC_EXPORT
|
|
36
|
+
# else
|
|
37
|
+
# define ICESSL_OPENSSL_API ICE_DECLSPEC_IMPORT
|
|
38
|
+
# endif
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
#if defined(_WIN32) && !defined(ICESSL_OPENSSL_API_EXPORTS)
|
|
42
|
+
|
|
43
|
+
namespace Ice
|
|
44
|
+
{
|
|
45
|
+
|
|
46
|
+
ICE_PLUGIN_REGISTER_DECLSPEC_IMPORT void registerIceSSLOpenSSL(bool = true);
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
namespace IceSSL
|
|
52
|
+
{
|
|
53
|
+
|
|
54
|
+
namespace OpenSSL
|
|
55
|
+
{
|
|
56
|
+
|
|
57
|
+
class Certificate;
|
|
58
|
+
ICE_DEFINE_PTR(CertificatePtr, Certificate);
|
|
59
|
+
|
|
60
|
+
class ICESSL_OPENSSL_API Certificate : public virtual IceSSL::Certificate
|
|
61
|
+
{
|
|
62
|
+
public:
|
|
63
|
+
|
|
64
|
+
//
|
|
65
|
+
// Construct a certificate using a native certificate.
|
|
66
|
+
//
|
|
67
|
+
// The Certificate class assumes ownership of the given native
|
|
68
|
+
// certificate.
|
|
69
|
+
//
|
|
70
|
+
static CertificatePtr create(x509_st*);
|
|
71
|
+
|
|
72
|
+
//
|
|
73
|
+
// Load the certificate from a file. The certificate must use the
|
|
74
|
+
// PEM encoding format. Raises CertificateReadException if the
|
|
75
|
+
// file cannot be read.
|
|
76
|
+
//
|
|
77
|
+
static CertificatePtr load(const std::string&);
|
|
78
|
+
|
|
79
|
+
//
|
|
80
|
+
// Decode a certificate from a string that uses the PEM encoding
|
|
81
|
+
// format. Raises CertificateEncodingException if an error
|
|
82
|
+
// occurs.
|
|
83
|
+
//
|
|
84
|
+
static CertificatePtr decode(const std::string&);
|
|
85
|
+
|
|
86
|
+
//
|
|
87
|
+
// Retrieve the native X509 certificate value wrapped by this
|
|
88
|
+
// object.
|
|
89
|
+
//
|
|
90
|
+
// The returned reference is only valid for the lifetime of this
|
|
91
|
+
// object. you can increment it with X509_dup.
|
|
92
|
+
//
|
|
93
|
+
virtual x509_st* getCert() const = 0;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
class ICESSL_OPENSSL_API Plugin : public virtual IceSSL::Plugin
|
|
97
|
+
{
|
|
98
|
+
public:
|
|
99
|
+
//
|
|
100
|
+
// returns OpenSSL version number.
|
|
101
|
+
//
|
|
102
|
+
virtual Ice::Long getOpenSSLVersion() const = 0;
|
|
103
|
+
//
|
|
104
|
+
// Establish the OpenSSL context. This must be done before the
|
|
105
|
+
// plug-in is initialized, therefore the application must define
|
|
106
|
+
// the property Ice.InitPlugins=0, set the context, and finally
|
|
107
|
+
// invoke initializePlugins on the PluginManager.
|
|
108
|
+
//
|
|
109
|
+
// When the application supplies its own OpenSSL context, the
|
|
110
|
+
// plug-in ignores configuration properties related to certificates,
|
|
111
|
+
// keys, and passwords.
|
|
112
|
+
//
|
|
113
|
+
// Note that the plugin assumes ownership of the given context.
|
|
114
|
+
//
|
|
115
|
+
virtual void setContext(SSL_CTX*) = 0;
|
|
116
|
+
|
|
117
|
+
//
|
|
118
|
+
// Obtain the SSL context. Use caution when modifying this value.
|
|
119
|
+
// Changes made to this value have no effect on existing connections.
|
|
120
|
+
//
|
|
121
|
+
virtual SSL_CTX* getContext() = 0;
|
|
122
|
+
|
|
123
|
+
};
|
|
124
|
+
ICE_DEFINE_PTR(PluginPtr, Plugin);
|
|
125
|
+
|
|
126
|
+
} // OpenSSL namespace end
|
|
127
|
+
|
|
128
|
+
} // IceSSL namespace end
|
|
129
|
+
|
|
130
|
+
#endif
|
|
@@ -1,107 +1,56 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
7
7
|
//
|
|
8
8
|
// **********************************************************************
|
|
9
9
|
|
|
10
|
-
#ifndef
|
|
11
|
-
#define
|
|
10
|
+
#ifndef ICESSL_PLUGIN_H
|
|
11
|
+
#define ICESSL_PLUGIN_H
|
|
12
12
|
|
|
13
|
-
#include <IceUtil/Time.h>
|
|
14
13
|
#include <Ice/Plugin.h>
|
|
15
14
|
#include <IceSSL/Config.h>
|
|
16
|
-
#include <IceSSL/
|
|
15
|
+
#include <IceSSL/ConnectionInfoF.h>
|
|
16
|
+
|
|
17
|
+
#ifdef ICE_CPP11_MAPPING
|
|
18
|
+
# include <chrono>
|
|
19
|
+
#else
|
|
20
|
+
# include <IceUtil/Time.h>
|
|
21
|
+
#endif
|
|
17
22
|
|
|
18
23
|
#include <vector>
|
|
19
24
|
#include <list>
|
|
20
25
|
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
#ifndef ICE_SSL_API
|
|
28
|
-
# ifdef ICE_SSL_API_EXPORTS
|
|
29
|
-
# define ICE_SSL_API ICE_DECLSPEC_EXPORT
|
|
30
|
-
# elif defined(ICE_STATIC_LIBS)
|
|
31
|
-
# define ICE_SSL_API /**/
|
|
26
|
+
#ifndef ICESSL_API
|
|
27
|
+
# if defined(ICE_STATIC_LIBS)
|
|
28
|
+
# define ICESSL_API /**/
|
|
29
|
+
# elif defined(ICESSL_API_EXPORTS)
|
|
30
|
+
# define ICESSL_API ICE_DECLSPEC_EXPORT
|
|
32
31
|
# else
|
|
33
|
-
# define
|
|
32
|
+
# define ICESSL_API ICE_DECLSPEC_IMPORT
|
|
34
33
|
# endif
|
|
35
34
|
#endif
|
|
36
35
|
|
|
37
|
-
#ifdef ICE_USE_OPENSSL
|
|
38
|
-
|
|
39
|
-
//
|
|
40
|
-
// Pointer to an opaque SSL session context object. ssl_ctx_st is the
|
|
41
|
-
// OpenSSL type that holds configuration settings for all SSL
|
|
42
|
-
// connections.
|
|
43
|
-
//
|
|
44
|
-
typedef struct ssl_ctx_st SSL_CTX;
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
// Pointer to an opaque certificate object. X509_st is the OpenSSL
|
|
48
|
-
// type that represents a certificate.
|
|
49
|
-
//
|
|
50
|
-
typedef struct x509_st* X509CertificateRef;
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
// EVP_PKEY is the OpenSSL type that represents a public key.
|
|
54
|
-
//
|
|
55
|
-
typedef struct evp_pkey_st* KeyRef;
|
|
56
|
-
|
|
57
|
-
//
|
|
58
|
-
// Type that represents an X509 distinguished name
|
|
59
|
-
//
|
|
60
|
-
typedef struct X509_name_st X509NAME;
|
|
61
|
-
|
|
62
|
-
#elif defined(ICE_USE_SECURE_TRANSPORT)
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
// Pointer to an opaque certificate object.
|
|
66
|
-
//
|
|
67
|
-
struct OpaqueSecCertificateRef;
|
|
68
|
-
typedef struct OpaqueSecCertificateRef* X509CertificateRef;
|
|
69
|
-
|
|
70
|
-
//
|
|
71
|
-
// Pointer to an opaque key object.
|
|
72
|
-
//
|
|
73
|
-
struct OpaqueSecKeyRef;
|
|
74
|
-
typedef struct OpaqueSecKeyRef* KeyRef;
|
|
75
|
-
|
|
76
|
-
#elif defined(ICE_USE_SCHANNEL)
|
|
77
|
-
|
|
78
|
-
//
|
|
79
|
-
// Pointer to an opaque certificate object.
|
|
80
|
-
//
|
|
81
|
-
typedef CERT_SIGNED_CONTENT_INFO* X509CertificateRef;
|
|
82
|
-
|
|
83
|
-
//
|
|
84
|
-
// Pointer to an opaque key object.
|
|
85
|
-
//
|
|
86
|
-
typedef CERT_PUBLIC_KEY_INFO* KeyRef;
|
|
87
|
-
|
|
88
|
-
#endif
|
|
89
|
-
|
|
90
36
|
namespace IceSSL
|
|
91
37
|
{
|
|
92
38
|
|
|
93
39
|
//
|
|
94
40
|
// This exception is thrown if the certificate cannot be read.
|
|
95
41
|
//
|
|
96
|
-
class
|
|
42
|
+
class ICESSL_API CertificateReadException : public IceUtil::ExceptionHelper<CertificateReadException>
|
|
97
43
|
{
|
|
98
44
|
public:
|
|
99
45
|
|
|
100
46
|
CertificateReadException(const char*, int, const std::string&);
|
|
47
|
+
#ifndef ICE_CPP11_COMPILER
|
|
101
48
|
virtual ~CertificateReadException() throw();
|
|
102
|
-
|
|
49
|
+
#endif
|
|
50
|
+
virtual std::string ice_id() const;
|
|
51
|
+
#ifndef ICE_CPP11_MAPPING
|
|
103
52
|
virtual CertificateReadException* ice_clone() const;
|
|
104
|
-
|
|
53
|
+
#endif
|
|
105
54
|
|
|
106
55
|
std::string reason;
|
|
107
56
|
|
|
@@ -113,18 +62,18 @@ private:
|
|
|
113
62
|
//
|
|
114
63
|
// This exception is thrown if the certificate cannot be encoded.
|
|
115
64
|
//
|
|
116
|
-
class
|
|
65
|
+
class ICESSL_API CertificateEncodingException : public IceUtil::ExceptionHelper<CertificateEncodingException>
|
|
117
66
|
{
|
|
118
67
|
public:
|
|
119
68
|
|
|
120
69
|
CertificateEncodingException(const char*, int, const std::string&);
|
|
121
|
-
#
|
|
122
|
-
CertificateEncodingException(const char*, int, CFErrorRef);
|
|
123
|
-
#endif
|
|
70
|
+
#ifndef ICE_CPP11_COMPILER
|
|
124
71
|
virtual ~CertificateEncodingException() throw();
|
|
125
|
-
|
|
72
|
+
#endif
|
|
73
|
+
virtual std::string ice_id() const;
|
|
74
|
+
#ifndef ICE_CPP11_MAPPING
|
|
126
75
|
virtual CertificateEncodingException* ice_clone() const;
|
|
127
|
-
|
|
76
|
+
#endif
|
|
128
77
|
|
|
129
78
|
std::string reason;
|
|
130
79
|
|
|
@@ -136,15 +85,18 @@ private:
|
|
|
136
85
|
//
|
|
137
86
|
// This exception is thrown if a distinguished name cannot be parsed.
|
|
138
87
|
//
|
|
139
|
-
class
|
|
88
|
+
class ICESSL_API ParseException : public IceUtil::ExceptionHelper<ParseException>
|
|
140
89
|
{
|
|
141
90
|
public:
|
|
142
91
|
|
|
143
92
|
ParseException(const char*, int, const std::string&);
|
|
93
|
+
#ifndef ICE_CPP11_COMPILER
|
|
144
94
|
virtual ~ParseException() throw();
|
|
145
|
-
|
|
95
|
+
#endif
|
|
96
|
+
virtual std::string ice_id() const;
|
|
97
|
+
#ifndef ICE_CPP11_MAPPING
|
|
146
98
|
virtual ParseException* ice_clone() const;
|
|
147
|
-
|
|
99
|
+
#endif
|
|
148
100
|
|
|
149
101
|
std::string reason;
|
|
150
102
|
|
|
@@ -153,41 +105,6 @@ private:
|
|
|
153
105
|
static const char* _name;
|
|
154
106
|
};
|
|
155
107
|
|
|
156
|
-
//
|
|
157
|
-
// Forward declaration.
|
|
158
|
-
//
|
|
159
|
-
class Certificate;
|
|
160
|
-
typedef IceUtil::Handle<Certificate> CertificatePtr;
|
|
161
|
-
|
|
162
|
-
//
|
|
163
|
-
// A representation of a PublicKey.
|
|
164
|
-
//
|
|
165
|
-
class ICE_SSL_API PublicKey : public IceUtil::Shared
|
|
166
|
-
{
|
|
167
|
-
public:
|
|
168
|
-
|
|
169
|
-
~PublicKey();
|
|
170
|
-
|
|
171
|
-
//
|
|
172
|
-
// Retrieve the native public key value wrapped by this object.
|
|
173
|
-
//
|
|
174
|
-
// The returned reference is only valid for the lifetime of this
|
|
175
|
-
// object. With SecureTransport you can increment the reference
|
|
176
|
-
// count of the returned object with CFRetain.
|
|
177
|
-
//
|
|
178
|
-
KeyRef key() const;
|
|
179
|
-
|
|
180
|
-
private:
|
|
181
|
-
|
|
182
|
-
PublicKey(const CertificatePtr&, KeyRef);
|
|
183
|
-
friend class Certificate;
|
|
184
|
-
|
|
185
|
-
CertificatePtr _cert;
|
|
186
|
-
KeyRef _key;
|
|
187
|
-
|
|
188
|
-
};
|
|
189
|
-
typedef IceUtil::Handle<PublicKey> PublicKeyPtr;
|
|
190
|
-
|
|
191
108
|
//
|
|
192
109
|
// This class represents a DistinguishedName, similar to the Java
|
|
193
110
|
// type X500Principal and the .NET type X500DistinguishedName.
|
|
@@ -200,24 +117,17 @@ typedef IceUtil::Handle<PublicKey> PublicKeyPtr;
|
|
|
200
117
|
// provided in the constructor (i.e., "ZeroC, Inc." will not turn
|
|
201
118
|
// into ZeroC\, Inc.).
|
|
202
119
|
//
|
|
203
|
-
class
|
|
120
|
+
class ICESSL_API DistinguishedName
|
|
204
121
|
{
|
|
205
122
|
public:
|
|
206
123
|
|
|
207
|
-
#ifdef ICE_USE_OPENSSL
|
|
208
|
-
//
|
|
209
|
-
// Create a DistinguishedName using an OpenSSL value.
|
|
210
|
-
//
|
|
211
|
-
DistinguishedName(X509NAME*);
|
|
212
|
-
#endif
|
|
213
|
-
|
|
214
124
|
//
|
|
215
125
|
// Create a DistinguishedName from a string encoded using
|
|
216
126
|
// the rules in RFC2253.
|
|
217
127
|
//
|
|
218
128
|
// Throws ParseException if parsing fails.
|
|
219
129
|
//
|
|
220
|
-
DistinguishedName(const std::string&);
|
|
130
|
+
explicit DistinguishedName(const std::string&);
|
|
221
131
|
|
|
222
132
|
//
|
|
223
133
|
// Create a DistinguishedName from a list of RDN pairs,
|
|
@@ -225,15 +135,14 @@ public:
|
|
|
225
135
|
// For example, the RDN "O=ZeroC" is represented by the
|
|
226
136
|
// pair ("O", "ZeroC").
|
|
227
137
|
//
|
|
228
|
-
DistinguishedName(const std::list<std::pair<std::string, std::string> >&);
|
|
138
|
+
explicit DistinguishedName(const std::list<std::pair<std::string, std::string> >&);
|
|
229
139
|
|
|
230
140
|
//
|
|
231
141
|
// This is an exact match. The order of the RDN components is
|
|
232
142
|
// important.
|
|
233
143
|
//
|
|
234
|
-
bool operator==(const DistinguishedName&)
|
|
235
|
-
bool operator
|
|
236
|
-
bool operator<(const DistinguishedName&) const;
|
|
144
|
+
friend ICESSL_API bool operator==(const DistinguishedName&, const DistinguishedName&);
|
|
145
|
+
friend ICESSL_API bool operator<(const DistinguishedName&, const DistinguishedName&);
|
|
237
146
|
|
|
238
147
|
//
|
|
239
148
|
// Perform a partial match with another DistinguishedName. The function
|
|
@@ -241,128 +150,151 @@ public:
|
|
|
241
150
|
// DistinguishedName and they have the same values.
|
|
242
151
|
//
|
|
243
152
|
bool match(const DistinguishedName&) const;
|
|
153
|
+
bool match(const std::string&) const;
|
|
244
154
|
|
|
245
155
|
//
|
|
246
156
|
// Encode the DN in RFC2253 format.
|
|
247
157
|
//
|
|
248
158
|
operator std::string() const;
|
|
249
159
|
|
|
250
|
-
|
|
160
|
+
protected:
|
|
251
161
|
|
|
252
162
|
void unescape();
|
|
253
163
|
|
|
164
|
+
private:
|
|
165
|
+
|
|
254
166
|
std::list<std::pair<std::string, std::string> > _rdns;
|
|
255
167
|
std::list<std::pair<std::string, std::string> > _unescaped;
|
|
256
168
|
};
|
|
257
169
|
|
|
170
|
+
inline bool
|
|
171
|
+
operator>(const DistinguishedName& lhs, const DistinguishedName& rhs)
|
|
172
|
+
{
|
|
173
|
+
return rhs < lhs;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
inline bool
|
|
177
|
+
operator<=(const DistinguishedName& lhs, const DistinguishedName& rhs)
|
|
178
|
+
{
|
|
179
|
+
return !(lhs > rhs);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
inline bool
|
|
183
|
+
operator>=(const DistinguishedName& lhs, const DistinguishedName& rhs)
|
|
184
|
+
{
|
|
185
|
+
return !(lhs < rhs);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
inline bool
|
|
189
|
+
operator!=(const DistinguishedName& lhs, const DistinguishedName& rhs)
|
|
190
|
+
{
|
|
191
|
+
return !(lhs == rhs);
|
|
192
|
+
}
|
|
193
|
+
|
|
258
194
|
//
|
|
259
|
-
// This
|
|
260
|
-
// The interface is inspired by java.security.cert.X509Certificate.
|
|
195
|
+
// This class represents an X509 Certificate extension.
|
|
261
196
|
//
|
|
262
|
-
class
|
|
197
|
+
class ICESSL_API X509Extension
|
|
198
|
+
#ifndef ICE_CPP11_MAPPING
|
|
199
|
+
: public virtual IceUtil::Shared
|
|
200
|
+
#endif
|
|
263
201
|
{
|
|
264
202
|
public:
|
|
265
203
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
//
|
|
272
|
-
Certificate(X509CertificateRef);
|
|
273
|
-
~Certificate();
|
|
204
|
+
virtual bool isCritical() const = 0;
|
|
205
|
+
virtual std::string getOID() const = 0;
|
|
206
|
+
virtual std::vector<Ice::Byte> getData() const = 0;
|
|
207
|
+
};
|
|
208
|
+
ICE_DEFINE_PTR(X509ExtensionPtr, X509Extension);
|
|
274
209
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
//
|
|
280
|
-
static CertificatePtr load(const std::string&);
|
|
210
|
+
//
|
|
211
|
+
// This convenience class is a wrapper around a native certificate.
|
|
212
|
+
// The interface is inspired by java.security.cert.X509Certificate.
|
|
213
|
+
//
|
|
281
214
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
215
|
+
class Certificate;
|
|
216
|
+
ICE_DEFINE_PTR(CertificatePtr, Certificate);
|
|
217
|
+
|
|
218
|
+
class ICESSL_API Certificate :
|
|
219
|
+
#ifdef ICE_CPP11_MAPPING
|
|
220
|
+
public std::enable_shared_from_this<Certificate>
|
|
221
|
+
#else
|
|
222
|
+
public virtual IceUtil::Shared
|
|
223
|
+
#endif
|
|
224
|
+
{
|
|
225
|
+
public:
|
|
288
226
|
|
|
289
227
|
//
|
|
290
|
-
//
|
|
228
|
+
// Compare the certificates for equality using the
|
|
291
229
|
// native certificate comparison method.
|
|
292
230
|
//
|
|
293
|
-
bool operator==(const Certificate&) const;
|
|
294
|
-
bool operator!=(const Certificate&) const;
|
|
231
|
+
virtual bool operator==(const Certificate&) const = 0;
|
|
232
|
+
virtual bool operator!=(const Certificate&) const = 0;
|
|
295
233
|
|
|
296
234
|
//
|
|
297
|
-
//
|
|
235
|
+
// Authority key identifier
|
|
298
236
|
//
|
|
299
|
-
|
|
237
|
+
virtual std::vector<Ice::Byte> getAuthorityKeyIdentifier() const = 0;
|
|
300
238
|
|
|
301
239
|
//
|
|
302
|
-
//
|
|
303
|
-
// public key. Returns true if signed, false otherwise.
|
|
240
|
+
// Subject key identifier
|
|
304
241
|
//
|
|
305
|
-
|
|
242
|
+
virtual std::vector<Ice::Byte> getSubjectKeyIdentifier() const = 0;
|
|
306
243
|
|
|
307
|
-
#ifdef ICE_USE_OPENSSL
|
|
308
|
-
//
|
|
309
|
-
// Verify that this certificate was signed by the given public
|
|
310
|
-
// key. Returns true if signed, false otherwise.
|
|
311
244
|
//
|
|
312
|
-
//
|
|
313
|
-
//
|
|
314
|
-
// verify the certificate signature.
|
|
245
|
+
// Verify that this certificate was signed by the given certificate
|
|
246
|
+
// public key. Returns true if signed, false otherwise.
|
|
315
247
|
//
|
|
316
|
-
|
|
317
|
-
bool verify(const PublicKeyPtr&) const;
|
|
318
|
-
#endif
|
|
248
|
+
virtual bool verify(const CertificatePtr&) const = 0;
|
|
319
249
|
|
|
320
250
|
//
|
|
321
251
|
// Return a string encoding of the certificate in PEM format.
|
|
322
252
|
// Raises CertificateEncodingException if an error occurs.
|
|
323
253
|
//
|
|
324
|
-
std::string encode() const;
|
|
254
|
+
virtual std::string encode() const = 0;
|
|
325
255
|
|
|
326
256
|
//
|
|
327
257
|
// Checks that the certificate is currently valid, that is, the current
|
|
328
258
|
// date falls between the validity period given in the certificate.
|
|
329
259
|
//
|
|
330
|
-
bool checkValidity() const;
|
|
260
|
+
virtual bool checkValidity() const = 0;
|
|
331
261
|
|
|
332
262
|
//
|
|
333
263
|
// Checks that the certificate is valid at the given time.
|
|
334
264
|
//
|
|
335
|
-
|
|
265
|
+
#ifdef ICE_CPP11_MAPPING
|
|
266
|
+
virtual bool checkValidity(const std::chrono::system_clock::time_point&) const = 0;
|
|
267
|
+
#else
|
|
268
|
+
virtual bool checkValidity(const IceUtil::Time&) const = 0;
|
|
269
|
+
#endif
|
|
336
270
|
|
|
337
271
|
//
|
|
338
272
|
// Get the not-after validity time.
|
|
339
273
|
//
|
|
340
|
-
|
|
274
|
+
#ifdef ICE_CPP11_MAPPING
|
|
275
|
+
virtual std::chrono::system_clock::time_point getNotAfter() const = 0;
|
|
276
|
+
#else
|
|
277
|
+
virtual IceUtil::Time getNotAfter() const = 0;
|
|
278
|
+
#endif
|
|
341
279
|
|
|
342
280
|
//
|
|
343
281
|
// Get the not-before validity time.
|
|
344
282
|
//
|
|
345
|
-
|
|
283
|
+
#ifdef ICE_CPP11_MAPPING
|
|
284
|
+
virtual std::chrono::system_clock::time_point getNotBefore() const = 0;
|
|
285
|
+
#else
|
|
286
|
+
virtual IceUtil::Time getNotBefore() const = 0;
|
|
287
|
+
#endif
|
|
346
288
|
|
|
347
289
|
//
|
|
348
290
|
// Get the serial number. This is an arbitrarily large number.
|
|
349
291
|
//
|
|
350
|
-
std::string getSerialNumber() const;
|
|
351
|
-
|
|
352
|
-
//
|
|
353
|
-
// Get the signature algorithm name used to sign the certificate.
|
|
354
|
-
//
|
|
355
|
-
//std::string getSigAlgName() const;
|
|
356
|
-
|
|
357
|
-
//
|
|
358
|
-
// Get the signature algorithm OID string from the certificate.
|
|
359
|
-
//
|
|
360
|
-
//std::string getSigAlgOID() const;
|
|
292
|
+
virtual std::string getSerialNumber() const = 0;
|
|
361
293
|
|
|
362
294
|
//
|
|
363
295
|
// Get the issuer's distinguished name (DN).
|
|
364
296
|
//
|
|
365
|
-
DistinguishedName getIssuerDN() const;
|
|
297
|
+
virtual DistinguishedName getIssuerDN() const = 0;
|
|
366
298
|
|
|
367
299
|
//
|
|
368
300
|
// Get the values in the issuer's alternative names extension.
|
|
@@ -390,97 +322,73 @@ public:
|
|
|
390
322
|
// The remainder of the data will result in an empty string. Use the raw
|
|
391
323
|
// X509* certificate to obtain these values.
|
|
392
324
|
//
|
|
393
|
-
std::vector<std::pair<int, std::string> > getIssuerAlternativeNames();
|
|
325
|
+
virtual std::vector<std::pair<int, std::string> > getIssuerAlternativeNames() const = 0;
|
|
394
326
|
|
|
395
327
|
//
|
|
396
328
|
// Get the subject's distinguished name (DN).
|
|
397
329
|
//
|
|
398
|
-
DistinguishedName getSubjectDN() const;
|
|
330
|
+
virtual DistinguishedName getSubjectDN() const = 0;
|
|
399
331
|
|
|
400
332
|
//
|
|
401
333
|
// See the comment for getIssuerAlternativeNames.
|
|
402
334
|
//
|
|
403
|
-
std::vector<std::pair<int, std::string> > getSubjectAlternativeNames();
|
|
335
|
+
virtual std::vector<std::pair<int, std::string> > getSubjectAlternativeNames() const = 0;
|
|
404
336
|
|
|
405
337
|
//
|
|
406
338
|
// Retrieve the certificate version number.
|
|
407
339
|
//
|
|
408
|
-
int getVersion() const;
|
|
340
|
+
virtual int getVersion() const = 0;
|
|
409
341
|
|
|
410
342
|
//
|
|
411
343
|
// Stringify the certificate. This is a human readable version of
|
|
412
344
|
// the certificate, not a DER or PEM encoding.
|
|
413
345
|
//
|
|
414
|
-
std::string toString() const;
|
|
346
|
+
virtual std::string toString() const = 0;
|
|
415
347
|
|
|
416
348
|
//
|
|
417
|
-
//
|
|
418
|
-
//
|
|
419
|
-
//
|
|
420
|
-
// The returned reference is only valid for the lifetime of this
|
|
421
|
-
// object. With SecureTransport you can increment the reference
|
|
422
|
-
// count of the returned object with CFRetain. With OpenSSL, you
|
|
423
|
-
// can increment it with X509_dup. With SChannel, the returned
|
|
424
|
-
// reference is a pointer to a struct.
|
|
349
|
+
// Return a list with the X509v3 extensions contained in the
|
|
350
|
+
// certificate.
|
|
425
351
|
//
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
private:
|
|
429
|
-
|
|
430
|
-
X509CertificateRef _cert;
|
|
431
|
-
|
|
432
|
-
#ifdef ICE_USE_SCHANNEL
|
|
433
|
-
CERT_INFO* _certInfo;
|
|
434
|
-
#endif
|
|
435
|
-
};
|
|
436
|
-
|
|
437
|
-
//
|
|
438
|
-
// NativeConnectionInfo is an extension of IceSSL::ConnectionInfo that
|
|
439
|
-
// provides access to native certificates.
|
|
440
|
-
//
|
|
441
|
-
class ICE_SSL_API NativeConnectionInfo : public ConnectionInfo
|
|
442
|
-
{
|
|
443
|
-
public:
|
|
352
|
+
virtual std::vector<X509ExtensionPtr> getX509Extensions() const = 0;
|
|
444
353
|
|
|
445
354
|
//
|
|
446
|
-
//
|
|
447
|
-
//
|
|
448
|
-
// first one in the chain.
|
|
355
|
+
// Return the extension with the given OID or null if the certificate
|
|
356
|
+
// does not contain a extension with the given OID.
|
|
449
357
|
//
|
|
450
|
-
std::
|
|
451
|
-
};
|
|
452
|
-
typedef IceUtil::Handle<NativeConnectionInfo> NativeConnectionInfoPtr;
|
|
358
|
+
virtual X509ExtensionPtr getX509Extension(const std::string&) const = 0;
|
|
453
359
|
|
|
454
|
-
//
|
|
455
|
-
//
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
public:
|
|
360
|
+
//
|
|
361
|
+
// Load the certificate from a file. The certificate must use the
|
|
362
|
+
// PEM encoding format. Raises CertificateReadException if the
|
|
363
|
+
// file cannot be read.
|
|
364
|
+
//
|
|
365
|
+
static CertificatePtr load(const std::string&);
|
|
461
366
|
|
|
462
367
|
//
|
|
463
|
-
//
|
|
464
|
-
//
|
|
465
|
-
//
|
|
368
|
+
// Decode a certificate from a string that uses the PEM encoding
|
|
369
|
+
// format. Raises CertificateEncodingException if an error
|
|
370
|
+
// occurs.
|
|
466
371
|
//
|
|
467
|
-
std::
|
|
372
|
+
static CertificatePtr decode(const std::string&);
|
|
468
373
|
};
|
|
469
|
-
typedef IceUtil::Handle<WSSNativeConnectionInfo> WSSNativeConnectionInfoPtr;
|
|
470
374
|
|
|
375
|
+
#ifndef ICE_CPP11_MAPPING // C++98 mapping
|
|
471
376
|
//
|
|
472
377
|
// An application can customize the certificate verification process
|
|
473
378
|
// by implementing the CertificateVerifier interface.
|
|
474
379
|
//
|
|
475
|
-
|
|
380
|
+
|
|
381
|
+
class ICESSL_API CertificateVerifier : public IceUtil::Shared
|
|
476
382
|
{
|
|
477
383
|
public:
|
|
478
384
|
|
|
385
|
+
virtual ~CertificateVerifier();
|
|
386
|
+
|
|
479
387
|
//
|
|
480
388
|
// Return false if the connection should be rejected, or true to
|
|
481
389
|
// allow it.
|
|
482
390
|
//
|
|
483
|
-
virtual bool verify(const
|
|
391
|
+
virtual bool verify(const ConnectionInfoPtr&) = 0;
|
|
484
392
|
};
|
|
485
393
|
typedef IceUtil::Handle<CertificateVerifier> CertificateVerifierPtr;
|
|
486
394
|
|
|
@@ -499,10 +407,12 @@ typedef IceUtil::Handle<CertificateVerifier> CertificateVerifierPtr;
|
|
|
499
407
|
// IceSSL.DelayInit=1), configure the PasswordPrompt, then manually
|
|
500
408
|
// initialize the plug-in.
|
|
501
409
|
//
|
|
502
|
-
class
|
|
410
|
+
class ICESSL_API PasswordPrompt : public IceUtil::Shared
|
|
503
411
|
{
|
|
504
412
|
public:
|
|
505
413
|
|
|
414
|
+
virtual ~PasswordPrompt();
|
|
415
|
+
|
|
506
416
|
//
|
|
507
417
|
// The getPassword method may be invoked repeatedly, such as when
|
|
508
418
|
// several encrypted files are opened, or when multiple password
|
|
@@ -511,46 +421,49 @@ public:
|
|
|
511
421
|
virtual std::string getPassword() = 0;
|
|
512
422
|
};
|
|
513
423
|
typedef IceUtil::Handle<PasswordPrompt> PasswordPromptPtr;
|
|
424
|
+
#endif
|
|
514
425
|
|
|
515
|
-
class
|
|
426
|
+
class ICESSL_API Plugin : public Ice::Plugin
|
|
516
427
|
{
|
|
517
428
|
public:
|
|
518
429
|
|
|
430
|
+
virtual ~Plugin();
|
|
431
|
+
|
|
519
432
|
//
|
|
520
433
|
// Establish the certificate verifier object. This should be done
|
|
521
434
|
// before any connections are established.
|
|
522
435
|
//
|
|
436
|
+
#ifdef ICE_CPP11_MAPPING
|
|
437
|
+
virtual void setCertificateVerifier(std::function<bool(const std::shared_ptr<ConnectionInfo>&)>) = 0;
|
|
438
|
+
#else
|
|
523
439
|
virtual void setCertificateVerifier(const CertificateVerifierPtr&) = 0;
|
|
440
|
+
#endif
|
|
524
441
|
|
|
525
442
|
//
|
|
526
443
|
// Establish the password prompt object. This must be done before
|
|
527
444
|
// the plug-in is initialized.
|
|
528
445
|
//
|
|
446
|
+
#ifdef ICE_CPP11_MAPPING
|
|
447
|
+
virtual void setPasswordPrompt(std::function<std::string()>) = 0;
|
|
448
|
+
#else
|
|
529
449
|
virtual void setPasswordPrompt(const PasswordPromptPtr&) = 0;
|
|
450
|
+
#endif
|
|
530
451
|
|
|
531
|
-
#ifdef ICE_USE_OPENSSL
|
|
532
|
-
//
|
|
533
|
-
// Establish the OpenSSL context. This must be done before the
|
|
534
|
-
// plug-in is initialized, therefore the application must define
|
|
535
|
-
// the property Ice.InitPlugins=0, set the context, and finally
|
|
536
|
-
// invoke initializePlugins on the PluginManager.
|
|
537
452
|
//
|
|
538
|
-
//
|
|
539
|
-
//
|
|
540
|
-
//
|
|
541
|
-
//
|
|
542
|
-
// Note that the plugin assumes ownership of the given context.
|
|
453
|
+
// Load the certificate from a file. The certificate must use the
|
|
454
|
+
// PEM encoding format. Raises CertificateReadException if the
|
|
455
|
+
// file cannot be read.
|
|
543
456
|
//
|
|
544
|
-
virtual
|
|
457
|
+
virtual CertificatePtr load(const std::string&) const = 0;
|
|
545
458
|
|
|
546
459
|
//
|
|
547
|
-
//
|
|
548
|
-
//
|
|
460
|
+
// Decode a certificate from a string that uses the PEM encoding
|
|
461
|
+
// format. Raises CertificateEncodingException if an error
|
|
462
|
+
// occurs.
|
|
549
463
|
//
|
|
550
|
-
virtual
|
|
551
|
-
#endif
|
|
464
|
+
virtual CertificatePtr decode(const std::string&) const = 0;
|
|
552
465
|
};
|
|
553
|
-
|
|
466
|
+
ICE_DEFINE_PTR(PluginPtr, Plugin);
|
|
554
467
|
|
|
555
468
|
}
|
|
556
469
|
|