zeroc-ice 3.6b1
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 +7 -0
- data/ICE_LICENSE +54 -0
- data/LICENSE +339 -0
- data/bin/slice2rb +17 -0
- data/ext/Communicator.cpp +596 -0
- data/ext/Communicator.h +25 -0
- data/ext/Config.h +111 -0
- data/ext/Connection.cpp +381 -0
- data/ext/Connection.h +26 -0
- data/ext/Endpoint.cpp +311 -0
- data/ext/Endpoint.h +27 -0
- data/ext/ImplicitContext.cpp +152 -0
- data/ext/ImplicitContext.h +25 -0
- data/ext/Init.cpp +52 -0
- data/ext/Logger.cpp +151 -0
- data/ext/Logger.h +28 -0
- data/ext/ObjectFactory.cpp +140 -0
- data/ext/ObjectFactory.h +50 -0
- data/ext/Operation.cpp +676 -0
- data/ext/Operation.h +36 -0
- data/ext/Properties.cpp +369 -0
- data/ext/Properties.h +25 -0
- data/ext/Proxy.cpp +1354 -0
- data/ext/Proxy.h +27 -0
- data/ext/Slice.cpp +223 -0
- data/ext/Slice.h +22 -0
- data/ext/Types.cpp +3160 -0
- data/ext/Types.h +545 -0
- data/ext/Util.cpp +792 -0
- data/ext/Util.h +511 -0
- data/ext/extconf.rb +118 -0
- data/ext/ice/BZIP_LICENSE +42 -0
- data/ext/ice/MCPP_LICENSE +36 -0
- 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/ACMF.h +30 -0
- data/ext/ice/cpp/include/Ice/Application.h +156 -0
- data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
- data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
- data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
- data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/Config.h +97 -0
- data/ext/ice/cpp/include/Ice/Connection.h +495 -0
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
- data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
- data/ext/ice/cpp/include/Ice/Current.h +94 -0
- data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
- data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
- data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
- data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
- data/ext/ice/cpp/include/Ice/Exception.h +114 -0
- data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
- data/ext/ice/cpp/include/Ice/Format.h +39 -0
- data/ext/ice/cpp/include/Ice/Functional.h +138 -0
- data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
- data/ext/ice/cpp/include/Ice/Handle.h +192 -0
- data/ext/ice/cpp/include/Ice/Ice.h +54 -0
- data/ext/ice/cpp/include/Ice/Identity.h +160 -0
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
- data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
- data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
- data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
- data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
- data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
- data/ext/ice/cpp/include/Ice/Logger.h +94 -0
- data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
- data/ext/ice/cpp/include/Ice/Makefile +26 -0
- data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
- data/ext/ice/cpp/include/Ice/Object.h +165 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
- data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
- data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
- data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
- data/ext/ice/cpp/include/Ice/Process.h +568 -0
- data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
- data/ext/ice/cpp/include/Ice/Properties.h +130 -0
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
- data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
- data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
- data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
- data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
- data/ext/ice/cpp/include/Ice/Router.h +1155 -0
- data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
- data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/Service.h +260 -0
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
- data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
- data/ext/ice/cpp/include/Ice/Stream.h +449 -0
- data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
- data/ext/ice/cpp/include/Ice/Version.h +254 -0
- data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
- data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
- data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
- data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
- data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
- data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
- data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
- data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
- data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
- data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
- data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
- data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
- data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
- data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
- data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
- data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
- data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
- data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
- data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
- data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
- data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
- data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
- data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
- data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
- data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
- data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
- data/ext/ice/cpp/include/Slice/Makefile +26 -0
- data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
- data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
- data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
- data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
- data/ext/ice/cpp/include/Slice/Util.h +33 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
- data/ext/ice/cpp/src/Ice/ACM.h +117 -0
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
- data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
- data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
- data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
- data/ext/ice/cpp/src/Ice/Base64.h +36 -0
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
- data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
- data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
- data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Connector.h +36 -0
- data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
- data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
- data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
- data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
- data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
- data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
- data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
- data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
- data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
- data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
- data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
- data/ext/ice/cpp/src/Ice/Instance.h +198 -0
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
- data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
- data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
- data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
- data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
- data/ext/ice/cpp/src/Ice/Makefile +190 -0
- data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
- data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
- data/ext/ice/cpp/src/Ice/Network.h +291 -0
- data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
- data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
- data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
- data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
- data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
- data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
- data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
- data/ext/ice/cpp/src/Ice/Reference.h +305 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
- data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
- data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
- data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
- data/ext/ice/cpp/src/Ice/Selector.h +231 -0
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
- data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
- data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
- data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
- data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
- data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
- data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
- data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
- data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
- data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
- data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
- data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
- data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
- data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
- data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
- data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
- data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
- data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
- data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
- data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
- data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
- data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
- data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
- data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
- data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
- data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
- data/ext/ice/cpp/src/Slice/MD5.h +44 -0
- data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
- data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
- data/ext/ice/cpp/src/Slice/Makefile +65 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
- data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
- data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
- data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
- data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
- data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
- data/ext/ice/mcpp/config.h.Darwin +227 -0
- data/ext/ice/mcpp/config.h.Linux +227 -0
- data/ext/ice/mcpp/config.h.MINGW +7 -0
- data/ext/ice/mcpp/configed.H +382 -0
- data/ext/ice/mcpp/directive.c +1699 -0
- data/ext/ice/mcpp/eval.c +1673 -0
- data/ext/ice/mcpp/expand.c +2980 -0
- data/ext/ice/mcpp/internal.H +564 -0
- data/ext/ice/mcpp/main.c +1131 -0
- data/ext/ice/mcpp/mbchar.c +869 -0
- data/ext/ice/mcpp/mcpp_lib.h +31 -0
- data/ext/ice/mcpp/mcpp_out.h +13 -0
- data/ext/ice/mcpp/support.c +2811 -0
- data/ext/ice/mcpp/system.H +396 -0
- data/ext/ice/mcpp/system.c +4940 -0
- data/ice.gemspec +41 -0
- data/lib/Glacier2.rb +12 -0
- data/lib/Glacier2/Metrics.rb +99 -0
- data/lib/Glacier2/PermissionsVerifier.rb +168 -0
- data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
- data/lib/Glacier2/Router.rb +141 -0
- data/lib/Glacier2/RouterF.rb +29 -0
- data/lib/Glacier2/SSLInfo.rb +79 -0
- data/lib/Glacier2/Session.rb +470 -0
- data/lib/Ice.rb +659 -0
- data/lib/Ice/BuiltinSequences.rb +64 -0
- data/lib/Ice/Communicator.rb +93 -0
- data/lib/Ice/CommunicatorF.rb +28 -0
- data/lib/Ice/Connection.rb +414 -0
- data/lib/Ice/ConnectionF.rb +36 -0
- data/lib/Ice/Current.rb +152 -0
- data/lib/Ice/Endpoint.rb +265 -0
- data/lib/Ice/EndpointF.rb +52 -0
- data/lib/Ice/EndpointTypes.rb +77 -0
- data/lib/Ice/FacetMap.rb +28 -0
- data/lib/Ice/Identity.rb +70 -0
- data/lib/Ice/ImplicitContext.rb +59 -0
- data/lib/Ice/ImplicitContextF.rb +28 -0
- data/lib/Ice/Instrumentation.rb +425 -0
- data/lib/Ice/InstrumentationF.rb +35 -0
- data/lib/Ice/LocalException.rb +1081 -0
- data/lib/Ice/Locator.rb +314 -0
- data/lib/Ice/LocatorF.rb +34 -0
- data/lib/Ice/Logger.rb +57 -0
- data/lib/Ice/LoggerF.rb +28 -0
- data/lib/Ice/Metrics.rb +696 -0
- data/lib/Ice/ObjectAdapterF.rb +28 -0
- data/lib/Ice/ObjectFactory.rb +53 -0
- data/lib/Ice/ObjectFactoryF.rb +28 -0
- data/lib/Ice/Plugin.rb +87 -0
- data/lib/Ice/PluginF.rb +32 -0
- data/lib/Ice/Process.rb +93 -0
- data/lib/Ice/ProcessF.rb +29 -0
- data/lib/Ice/Properties.rb +65 -0
- data/lib/Ice/PropertiesAdmin.rb +104 -0
- data/lib/Ice/PropertiesF.rb +33 -0
- data/lib/Ice/Router.rb +163 -0
- data/lib/Ice/RouterF.rb +29 -0
- data/lib/Ice/SliceChecksumDict.rb +28 -0
- data/lib/Ice/Version.rb +100 -0
- data/lib/IceBox.rb +10 -0
- data/lib/IceBox/IceBox.rb +272 -0
- data/lib/IceGrid.rb +17 -0
- data/lib/IceGrid/Admin.rb +1076 -0
- data/lib/IceGrid/Descriptor.rb +1505 -0
- data/lib/IceGrid/Exception.rb +401 -0
- data/lib/IceGrid/FileParser.rb +105 -0
- data/lib/IceGrid/Locator.rb +105 -0
- data/lib/IceGrid/Observer.rb +571 -0
- data/lib/IceGrid/Query.rb +168 -0
- data/lib/IceGrid/Registry.rb +120 -0
- data/lib/IceGrid/Session.rb +114 -0
- data/lib/IceGrid/UserAccountMapper.rb +101 -0
- data/lib/IcePatch2.rb +10 -0
- data/lib/IcePatch2/FileInfo.rb +75 -0
- data/lib/IcePatch2/FileServer.rb +141 -0
- data/lib/IceStorm.rb +11 -0
- data/lib/IceStorm/IceStorm.rb +463 -0
- data/lib/IceStorm/Metrics.rb +155 -0
- data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
- data/slice/Freeze/CatalogData.ice +49 -0
- data/slice/Freeze/Connection.ice +111 -0
- data/slice/Freeze/ConnectionF.ice +20 -0
- data/slice/Freeze/DB.ice +37 -0
- data/slice/Freeze/Evictor.ice +339 -0
- data/slice/Freeze/EvictorF.ice +22 -0
- data/slice/Freeze/EvictorStorage.ice +72 -0
- data/slice/Freeze/Exception.ice +100 -0
- data/slice/Freeze/Transaction.ice +57 -0
- data/slice/Freeze/TransactionalEvictor.ice +50 -0
- data/slice/Glacier2/Metrics.ice +77 -0
- data/slice/Glacier2/PermissionsVerifier.ice +105 -0
- data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
- data/slice/Glacier2/Router.ice +178 -0
- data/slice/Glacier2/RouterF.ice +20 -0
- data/slice/Glacier2/SSLInfo.ice +50 -0
- data/slice/Glacier2/Session.ice +273 -0
- data/slice/Ice/BuiltinSequences.ice +48 -0
- data/slice/Ice/Communicator.ice +567 -0
- data/slice/Ice/CommunicatorF.ice +20 -0
- data/slice/Ice/Connection.ice +323 -0
- data/slice/Ice/ConnectionF.ice +22 -0
- data/slice/Ice/Current.ice +160 -0
- data/slice/Ice/Endpoint.ice +227 -0
- data/slice/Ice/EndpointF.ice +32 -0
- data/slice/Ice/EndpointTypes.ice +38 -0
- data/slice/Ice/FacetMap.ice +25 -0
- data/slice/Ice/Identity.ice +59 -0
- data/slice/Ice/ImplicitContext.ice +109 -0
- data/slice/Ice/ImplicitContextF.ice +20 -0
- data/slice/Ice/Instrumentation.ice +499 -0
- data/slice/Ice/InstrumentationF.ice +26 -0
- data/slice/Ice/LocalException.ice +1015 -0
- data/slice/Ice/Locator.ice +227 -0
- data/slice/Ice/LocatorF.ice +21 -0
- data/slice/Ice/Logger.ice +86 -0
- data/slice/Ice/LoggerF.ice +20 -0
- data/slice/Ice/Metrics.ice +422 -0
- data/slice/Ice/ObjectAdapter.ice +673 -0
- data/slice/Ice/ObjectAdapterF.ice +20 -0
- data/slice/Ice/ObjectFactory.ice +60 -0
- data/slice/Ice/ObjectFactoryF.ice +20 -0
- data/slice/Ice/Plugin.ice +117 -0
- data/slice/Ice/PluginF.ice +21 -0
- data/slice/Ice/Process.ice +54 -0
- data/slice/Ice/ProcessF.ice +20 -0
- data/slice/Ice/Properties.ice +228 -0
- data/slice/Ice/PropertiesAdmin.ice +75 -0
- data/slice/Ice/PropertiesF.ice +21 -0
- data/slice/Ice/RemoteLogger.ice +232 -0
- data/slice/Ice/Router.ice +83 -0
- data/slice/Ice/RouterF.ice +20 -0
- data/slice/Ice/ServantLocator.ice +117 -0
- data/slice/Ice/ServantLocatorF.ice +20 -0
- data/slice/Ice/SliceChecksumDict.ice +25 -0
- data/slice/Ice/Version.ice +39 -0
- data/slice/IceBox/IceBox.ice +194 -0
- data/slice/IceDiscovery/IceDiscovery.ice +32 -0
- data/slice/IceGrid/Admin.ice +1578 -0
- data/slice/IceGrid/Descriptor.ice +1079 -0
- data/slice/IceGrid/Discovery.ice +73 -0
- data/slice/IceGrid/Exception.ice +383 -0
- data/slice/IceGrid/FileParser.ice +61 -0
- data/slice/IceGrid/Locator.ice +56 -0
- data/slice/IceGrid/Observer.ice +394 -0
- data/slice/IceGrid/PluginFacade.ice +316 -0
- data/slice/IceGrid/Query.ice +130 -0
- data/slice/IceGrid/Registry.ice +138 -0
- data/slice/IceGrid/Session.ice +124 -0
- data/slice/IceGrid/UserAccountMapper.ice +58 -0
- data/slice/IcePatch2/FileInfo.ice +49 -0
- data/slice/IcePatch2/FileServer.ice +129 -0
- data/slice/IceSSL/ConnectionInfo.ice +34 -0
- data/slice/IceSSL/EndpointInfo.ice +41 -0
- data/slice/IceStorm/IceStorm.ice +405 -0
- data/slice/IceStorm/Metrics.ice +71 -0
- metadata +737 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 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 ICE_SSL_SCHANNELTRANSCEIVER_I_H
|
|
11
|
+
#define ICE_SSL_SCHANNELTRANSCEIVER_I_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/Config.h>
|
|
14
|
+
#include <IceSSL/InstanceF.h>
|
|
15
|
+
#include <IceSSL/Plugin.h>
|
|
16
|
+
#include <IceSSL/SSLEngineF.h>
|
|
17
|
+
|
|
18
|
+
#include <Ice/Transceiver.h>
|
|
19
|
+
#include <Ice/Network.h>
|
|
20
|
+
#include <Ice/Buffer.h>
|
|
21
|
+
#include <Ice/StreamSocket.h>
|
|
22
|
+
|
|
23
|
+
#ifdef ICE_USE_SCHANNEL
|
|
24
|
+
|
|
25
|
+
#ifdef SECURITY_WIN32
|
|
26
|
+
# undef SECURITY_WIN32
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
#ifdef SECURITY_KERNEL
|
|
30
|
+
# undef SECURITY_KERNEL
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#define SECURITY_WIN32 1
|
|
34
|
+
#include <security.h>
|
|
35
|
+
#include <sspi.h>
|
|
36
|
+
#include <schannel.h>
|
|
37
|
+
#undef SECURITY_WIN32
|
|
38
|
+
|
|
39
|
+
namespace IceSSL
|
|
40
|
+
{
|
|
41
|
+
|
|
42
|
+
class ConnectorI;
|
|
43
|
+
class AcceptorI;
|
|
44
|
+
|
|
45
|
+
class TransceiverI : public IceInternal::Transceiver
|
|
46
|
+
{
|
|
47
|
+
public:
|
|
48
|
+
|
|
49
|
+
virtual IceInternal::NativeInfoPtr getNativeInfo();
|
|
50
|
+
|
|
51
|
+
virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer&, bool&);
|
|
52
|
+
virtual IceInternal::SocketOperation closing(bool, const Ice::LocalException&);
|
|
53
|
+
virtual void close();
|
|
54
|
+
virtual IceInternal::SocketOperation write(IceInternal::Buffer&);
|
|
55
|
+
virtual IceInternal::SocketOperation read(IceInternal::Buffer&, bool&);
|
|
56
|
+
#ifdef ICE_USE_IOCP
|
|
57
|
+
virtual bool startWrite(IceInternal::Buffer&);
|
|
58
|
+
virtual void finishWrite(IceInternal::Buffer&);
|
|
59
|
+
virtual void startRead(IceInternal::Buffer&);
|
|
60
|
+
virtual void finishRead(IceInternal::Buffer&, bool&);
|
|
61
|
+
#endif
|
|
62
|
+
virtual std::string protocol() const;
|
|
63
|
+
virtual std::string toString() const;
|
|
64
|
+
virtual std::string toDetailedString() const;
|
|
65
|
+
virtual Ice::ConnectionInfoPtr getInfo() const;
|
|
66
|
+
virtual void checkSendSize(const IceInternal::Buffer&);
|
|
67
|
+
|
|
68
|
+
private:
|
|
69
|
+
|
|
70
|
+
TransceiverI(const InstancePtr&, const IceInternal::StreamSocketPtr&, const std::string&, bool);
|
|
71
|
+
virtual ~TransceiverI();
|
|
72
|
+
|
|
73
|
+
virtual NativeConnectionInfoPtr getNativeConnectionInfo() const;
|
|
74
|
+
|
|
75
|
+
IceInternal::SocketOperation sslHandshake();
|
|
76
|
+
|
|
77
|
+
size_t decryptMessage(IceInternal::Buffer&);
|
|
78
|
+
size_t encryptMessage(IceInternal::Buffer&);
|
|
79
|
+
|
|
80
|
+
bool writeRaw(IceInternal::Buffer&);
|
|
81
|
+
bool readRaw(IceInternal::Buffer&);
|
|
82
|
+
|
|
83
|
+
friend class ConnectorI;
|
|
84
|
+
friend class AcceptorI;
|
|
85
|
+
|
|
86
|
+
enum State
|
|
87
|
+
{
|
|
88
|
+
StateHandshakeNotStarted,
|
|
89
|
+
StateHandshakeReadContinue,
|
|
90
|
+
StateHandshakeWriteContinue,
|
|
91
|
+
StateHandshakeComplete
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const InstancePtr _instance;
|
|
95
|
+
const SChannelEnginePtr _engine;
|
|
96
|
+
const std::string _host;
|
|
97
|
+
const std::string _adapterName;
|
|
98
|
+
const bool _incoming;
|
|
99
|
+
const IceInternal::StreamSocketPtr _stream;
|
|
100
|
+
State _state;
|
|
101
|
+
|
|
102
|
+
//
|
|
103
|
+
// Buffered encrypted data that has not been written.
|
|
104
|
+
//
|
|
105
|
+
IceInternal::Buffer _writeBuffer;
|
|
106
|
+
size_t _bufferedW;
|
|
107
|
+
|
|
108
|
+
//
|
|
109
|
+
// Buffered data that has not been decrypted.
|
|
110
|
+
//
|
|
111
|
+
IceInternal::Buffer _readBuffer;
|
|
112
|
+
|
|
113
|
+
//
|
|
114
|
+
// Buffered data that was decrypted but not yet processed.
|
|
115
|
+
//
|
|
116
|
+
IceInternal::Buffer _readUnprocessed;
|
|
117
|
+
|
|
118
|
+
CtxtHandle _ssl;
|
|
119
|
+
bool _sslInitialized;
|
|
120
|
+
CredHandle _credentials;
|
|
121
|
+
bool _credentialsInitialized;
|
|
122
|
+
SecPkgContext_StreamSizes _sizes;
|
|
123
|
+
};
|
|
124
|
+
typedef IceUtil::Handle<TransceiverI> TransceiverIPtr;
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
#endif
|
|
129
|
+
|
|
130
|
+
#endif
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 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
|
+
#include <IceSSL/SSLEngine.h>
|
|
11
|
+
#include <IceSSL/TrustManager.h>
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/StringUtil.h>
|
|
14
|
+
|
|
15
|
+
#include <Ice/Communicator.h>
|
|
16
|
+
#include <Ice/Properties.h>
|
|
17
|
+
#include <Ice/Logger.h>
|
|
18
|
+
#include <Ice/LoggerUtil.h>
|
|
19
|
+
#include <Ice/LocalException.h>
|
|
20
|
+
|
|
21
|
+
#include <string>
|
|
22
|
+
|
|
23
|
+
using namespace std;
|
|
24
|
+
using namespace Ice;
|
|
25
|
+
using namespace IceSSL;
|
|
26
|
+
|
|
27
|
+
IceUtil::Shared* IceSSL::upCast(IceSSL::SSLEngine* p) { return p; }
|
|
28
|
+
|
|
29
|
+
IceSSL::SSLEngine::SSLEngine(const Ice::CommunicatorPtr& communicator) :
|
|
30
|
+
_communicator(communicator),
|
|
31
|
+
_logger(communicator->getLogger()),
|
|
32
|
+
_trustManager(new TrustManager(communicator))
|
|
33
|
+
{
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
IceSSL::CertificateVerifierPtr
|
|
37
|
+
IceSSL::SSLEngine::getCertificateVerifier() const
|
|
38
|
+
{
|
|
39
|
+
return _verifier;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void
|
|
43
|
+
IceSSL::SSLEngine::setCertificateVerifier(const IceSSL::CertificateVerifierPtr& verifier)
|
|
44
|
+
{
|
|
45
|
+
_verifier = verifier;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
IceSSL::PasswordPromptPtr
|
|
49
|
+
IceSSL::SSLEngine::getPasswordPrompt() const
|
|
50
|
+
{
|
|
51
|
+
return _prompt;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void
|
|
55
|
+
IceSSL::SSLEngine::setPasswordPrompt(const IceSSL::PasswordPromptPtr& prompt)
|
|
56
|
+
{
|
|
57
|
+
_prompt = prompt;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
string
|
|
61
|
+
IceSSL::SSLEngine::password(bool /*encrypting*/)
|
|
62
|
+
{
|
|
63
|
+
if(_prompt)
|
|
64
|
+
{
|
|
65
|
+
try
|
|
66
|
+
{
|
|
67
|
+
return _prompt->getPassword();
|
|
68
|
+
}
|
|
69
|
+
catch(...)
|
|
70
|
+
{
|
|
71
|
+
//
|
|
72
|
+
// Don't allow exceptions to cross an OpenSSL boundary.
|
|
73
|
+
//
|
|
74
|
+
return string();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
{
|
|
79
|
+
return _password;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
string
|
|
84
|
+
IceSSL::SSLEngine::getPassword() const
|
|
85
|
+
{
|
|
86
|
+
return _password;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
void
|
|
90
|
+
IceSSL::SSLEngine::setPassword(const std::string& password)
|
|
91
|
+
{
|
|
92
|
+
_password = password;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void
|
|
96
|
+
IceSSL::SSLEngine::initialize()
|
|
97
|
+
{
|
|
98
|
+
const string propPrefix = "IceSSL.";
|
|
99
|
+
const PropertiesPtr properties = communicator()->getProperties();
|
|
100
|
+
|
|
101
|
+
//
|
|
102
|
+
// CheckCertName determines whether we compare the name in a peer's
|
|
103
|
+
// certificate against its hostname.
|
|
104
|
+
//
|
|
105
|
+
_checkCertName = properties->getPropertyAsIntWithDefault(propPrefix + "CheckCertName", 0) > 0;
|
|
106
|
+
|
|
107
|
+
//
|
|
108
|
+
// VerifyDepthMax establishes the maximum length of a peer's certificate
|
|
109
|
+
// chain, including the peer's certificate. A value of 0 means there is
|
|
110
|
+
// no maximum.
|
|
111
|
+
//
|
|
112
|
+
_verifyDepthMax = properties->getPropertyAsIntWithDefault(propPrefix + "VerifyDepthMax", 2);
|
|
113
|
+
|
|
114
|
+
//
|
|
115
|
+
// VerifyPeer determines whether certificate validation failures abort a connection.
|
|
116
|
+
//
|
|
117
|
+
_verifyPeer = properties->getPropertyAsIntWithDefault(propPrefix + "VerifyPeer", 2);
|
|
118
|
+
|
|
119
|
+
if(_verifyPeer < 0 || _verifyPeer > 2)
|
|
120
|
+
{
|
|
121
|
+
PluginInitializationException ex(__FILE__, __LINE__);
|
|
122
|
+
ex.reason = "IceSSL: invalid value for " + propPrefix + "VerifyPeer";
|
|
123
|
+
throw ex;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
_securityTraceLevel = properties->getPropertyAsInt("IceSSL.Trace.Security");
|
|
127
|
+
_securityTraceCategory = "Security";
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
void
|
|
131
|
+
IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConnectionInfoPtr& info)
|
|
132
|
+
{
|
|
133
|
+
const CertificateVerifierPtr verifier = getCertificateVerifier();
|
|
134
|
+
|
|
135
|
+
//
|
|
136
|
+
// For an outgoing connection, we compare the proxy address (if any) against
|
|
137
|
+
// fields in the server's certificate (if any).
|
|
138
|
+
//
|
|
139
|
+
if(!info->nativeCerts.empty() && !address.empty())
|
|
140
|
+
{
|
|
141
|
+
const CertificatePtr cert = info->nativeCerts[0];
|
|
142
|
+
//
|
|
143
|
+
// Extract the IP addresses and the DNS names from the subject
|
|
144
|
+
// alternative names.
|
|
145
|
+
//
|
|
146
|
+
vector<pair<int, string> > subjectAltNames = cert->getSubjectAlternativeNames();
|
|
147
|
+
vector<string> ipAddresses;
|
|
148
|
+
vector<string> dnsNames;
|
|
149
|
+
for(vector<pair<int, string> >::const_iterator p = subjectAltNames.begin(); p != subjectAltNames.end(); ++p)
|
|
150
|
+
{
|
|
151
|
+
if(p->first == AltNAmeIP)
|
|
152
|
+
{
|
|
153
|
+
ipAddresses.push_back(IceUtilInternal::toLower(p->second));
|
|
154
|
+
}
|
|
155
|
+
else if(p->first == AltNameDNS)
|
|
156
|
+
{
|
|
157
|
+
dnsNames.push_back(IceUtilInternal::toLower(p->second));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
//
|
|
162
|
+
// Compare the peer's address against the common name.
|
|
163
|
+
//
|
|
164
|
+
bool certNameOK = false;
|
|
165
|
+
string dn;
|
|
166
|
+
string addrLower = IceUtilInternal::toLower(address);
|
|
167
|
+
{
|
|
168
|
+
DistinguishedName d = cert->getSubjectDN();
|
|
169
|
+
dn = IceUtilInternal::toLower(string(d));
|
|
170
|
+
string cn = "cn=" + addrLower;
|
|
171
|
+
string::size_type pos = dn.find(cn);
|
|
172
|
+
if(pos != string::npos)
|
|
173
|
+
{
|
|
174
|
+
//
|
|
175
|
+
// Ensure we match the entire common name.
|
|
176
|
+
//
|
|
177
|
+
certNameOK = (pos + cn.size() == dn.size()) || (dn[pos + cn.size()] == ',');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
//
|
|
182
|
+
// Compare the peer's address against the dnsName and ipAddress
|
|
183
|
+
// values in the subject alternative name.
|
|
184
|
+
//
|
|
185
|
+
if(!certNameOK)
|
|
186
|
+
{
|
|
187
|
+
certNameOK = find(ipAddresses.begin(), ipAddresses.end(), addrLower) != ipAddresses.end();
|
|
188
|
+
}
|
|
189
|
+
if(!certNameOK)
|
|
190
|
+
{
|
|
191
|
+
certNameOK = find(dnsNames.begin(), dnsNames.end(), addrLower) != dnsNames.end();
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
//
|
|
195
|
+
// Log a message if the name comparison fails. If CheckCertName is defined,
|
|
196
|
+
// we also raise an exception to abort the connection. Don't log a message if
|
|
197
|
+
// CheckCertName is not defined and a verifier is present.
|
|
198
|
+
//
|
|
199
|
+
if(!certNameOK && (_checkCertName || (_securityTraceLevel >= 1 && !verifier)))
|
|
200
|
+
{
|
|
201
|
+
ostringstream ostr;
|
|
202
|
+
ostr << "IceSSL: ";
|
|
203
|
+
if(!_checkCertName)
|
|
204
|
+
{
|
|
205
|
+
ostr << "ignoring ";
|
|
206
|
+
}
|
|
207
|
+
ostr << "certificate validation failure:\npeer certificate does not have `" << address
|
|
208
|
+
<< "' as its commonName or in its subjectAltName extension";
|
|
209
|
+
if(!dn.empty())
|
|
210
|
+
{
|
|
211
|
+
ostr << "\nSubject DN: " << dn;
|
|
212
|
+
}
|
|
213
|
+
if(!dnsNames.empty())
|
|
214
|
+
{
|
|
215
|
+
ostr << "\nDNS names found in certificate: ";
|
|
216
|
+
for(vector<string>::const_iterator p = dnsNames.begin(); p != dnsNames.end(); ++p)
|
|
217
|
+
{
|
|
218
|
+
if(p != dnsNames.begin())
|
|
219
|
+
{
|
|
220
|
+
ostr << ", ";
|
|
221
|
+
}
|
|
222
|
+
ostr << *p;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if(!ipAddresses.empty())
|
|
226
|
+
{
|
|
227
|
+
ostr << "\nIP addresses found in certificate: ";
|
|
228
|
+
for(vector<string>::const_iterator p = ipAddresses.begin(); p != ipAddresses.end(); ++p)
|
|
229
|
+
{
|
|
230
|
+
if(p != ipAddresses.begin())
|
|
231
|
+
{
|
|
232
|
+
ostr << ", ";
|
|
233
|
+
}
|
|
234
|
+
ostr << *p;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
string msg = ostr.str();
|
|
238
|
+
if(_securityTraceLevel >= 1)
|
|
239
|
+
{
|
|
240
|
+
Trace out(_logger, _securityTraceCategory);
|
|
241
|
+
out << msg;
|
|
242
|
+
}
|
|
243
|
+
if(_checkCertName)
|
|
244
|
+
{
|
|
245
|
+
SecurityException ex(__FILE__, __LINE__);
|
|
246
|
+
ex.reason = msg;
|
|
247
|
+
throw ex;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if(_verifyDepthMax > 0 && static_cast<int>(info->certs.size()) > _verifyDepthMax)
|
|
253
|
+
{
|
|
254
|
+
ostringstream ostr;
|
|
255
|
+
ostr << (info->incoming ? "incoming" : "outgoing") << " connection rejected:\n"
|
|
256
|
+
<< "length of peer's certificate chain (" << info->certs.size() << ") exceeds maximum of "
|
|
257
|
+
<< _verifyDepthMax;
|
|
258
|
+
string msg = ostr.str();
|
|
259
|
+
if(_securityTraceLevel >= 1)
|
|
260
|
+
{
|
|
261
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd));
|
|
262
|
+
}
|
|
263
|
+
SecurityException ex(__FILE__, __LINE__);
|
|
264
|
+
ex.reason = msg;
|
|
265
|
+
throw ex;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if(!_trustManager->verify(info))
|
|
269
|
+
{
|
|
270
|
+
string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by trust manager";
|
|
271
|
+
if(_securityTraceLevel >= 1)
|
|
272
|
+
{
|
|
273
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd));
|
|
274
|
+
}
|
|
275
|
+
SecurityException ex(__FILE__, __LINE__);
|
|
276
|
+
ex.reason = msg;
|
|
277
|
+
throw ex;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if(verifier && !verifier->verify(info))
|
|
281
|
+
{
|
|
282
|
+
string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by certificate verifier";
|
|
283
|
+
if(_securityTraceLevel >= 1)
|
|
284
|
+
{
|
|
285
|
+
_logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd));
|
|
286
|
+
}
|
|
287
|
+
SecurityException ex(__FILE__, __LINE__);
|
|
288
|
+
ex.reason = msg;
|
|
289
|
+
throw ex;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 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 ICE_SSL_ENGINE_H
|
|
11
|
+
#define ICE_SSL_ENGINE_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/Plugin.h>
|
|
14
|
+
#include <IceSSL/Util.h>
|
|
15
|
+
#include <IceSSL/SSLEngineF.h>
|
|
16
|
+
#include <IceSSL/TrustManagerF.h>
|
|
17
|
+
|
|
18
|
+
#include <IceUtil/Shared.h>
|
|
19
|
+
#include <IceUtil/Mutex.h>
|
|
20
|
+
#include <Ice/CommunicatorF.h>
|
|
21
|
+
#include <Ice/Network.h>
|
|
22
|
+
|
|
23
|
+
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
24
|
+
# include <Security/Security.h>
|
|
25
|
+
#elif defined(ICE_USE_SCHANNEL)
|
|
26
|
+
|
|
27
|
+
//
|
|
28
|
+
// SECURITY_WIN32 or SECURITY_KERNEL, must be defined before including security.h
|
|
29
|
+
// indicating who is compiling the code.
|
|
30
|
+
//
|
|
31
|
+
# ifdef SECURITY_WIN32
|
|
32
|
+
# undef SECURITY_WIN32
|
|
33
|
+
# endif
|
|
34
|
+
# ifdef SECURITY_KERNEL
|
|
35
|
+
# undef SECURITY_KERNEL
|
|
36
|
+
# endif
|
|
37
|
+
# define SECURITY_WIN32 1
|
|
38
|
+
# include <security.h>
|
|
39
|
+
# include <sspi.h>
|
|
40
|
+
# include <schannel.h>
|
|
41
|
+
# undef SECURITY_WIN32
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
namespace IceSSL
|
|
45
|
+
{
|
|
46
|
+
|
|
47
|
+
class SSLEngine : public IceUtil::Shared
|
|
48
|
+
{
|
|
49
|
+
public:
|
|
50
|
+
|
|
51
|
+
SSLEngine(const Ice::CommunicatorPtr&);
|
|
52
|
+
|
|
53
|
+
Ice::CommunicatorPtr communicator() const { return _communicator; }
|
|
54
|
+
Ice::LoggerPtr getLogger() const { return _logger; };
|
|
55
|
+
|
|
56
|
+
void setCertificateVerifier(const CertificateVerifierPtr&);
|
|
57
|
+
void setPasswordPrompt(const PasswordPromptPtr&);
|
|
58
|
+
std::string password(bool);
|
|
59
|
+
|
|
60
|
+
//
|
|
61
|
+
// Setup the engine.
|
|
62
|
+
//
|
|
63
|
+
virtual void initialize() = 0;
|
|
64
|
+
|
|
65
|
+
virtual bool initialized() const = 0;
|
|
66
|
+
|
|
67
|
+
//
|
|
68
|
+
// Destroy the engine.
|
|
69
|
+
//
|
|
70
|
+
virtual void destroy() = 0;
|
|
71
|
+
|
|
72
|
+
//
|
|
73
|
+
// Verify peer certificate
|
|
74
|
+
//
|
|
75
|
+
void verifyPeer(SOCKET, const std::string&, const NativeConnectionInfoPtr&);
|
|
76
|
+
|
|
77
|
+
CertificateVerifierPtr getCertificateVerifier() const;
|
|
78
|
+
PasswordPromptPtr getPasswordPrompt() const;
|
|
79
|
+
|
|
80
|
+
std::string getPassword() const;
|
|
81
|
+
void setPassword(const std::string& password);
|
|
82
|
+
|
|
83
|
+
int getVerifyPeer() const { return _verifyPeer; }
|
|
84
|
+
int securityTraceLevel() const { return _securityTraceLevel; }
|
|
85
|
+
std::string securityTraceCategory() const { return _securityTraceCategory; }
|
|
86
|
+
|
|
87
|
+
private:
|
|
88
|
+
|
|
89
|
+
const Ice::CommunicatorPtr _communicator;
|
|
90
|
+
const Ice::LoggerPtr _logger;
|
|
91
|
+
const TrustManagerPtr _trustManager;
|
|
92
|
+
|
|
93
|
+
std::string _password;
|
|
94
|
+
CertificateVerifierPtr _verifier;
|
|
95
|
+
PasswordPromptPtr _prompt;
|
|
96
|
+
|
|
97
|
+
bool _checkCertName;
|
|
98
|
+
int _verifyDepthMax;
|
|
99
|
+
int _verifyPeer;
|
|
100
|
+
int _securityTraceLevel;
|
|
101
|
+
std::string _securityTraceCategory;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
105
|
+
|
|
106
|
+
class SecureTransportEngine : public SSLEngine
|
|
107
|
+
{
|
|
108
|
+
public:
|
|
109
|
+
|
|
110
|
+
SecureTransportEngine(const Ice::CommunicatorPtr&);
|
|
111
|
+
|
|
112
|
+
virtual void initialize();
|
|
113
|
+
virtual bool initialized() const;
|
|
114
|
+
virtual void destroy();
|
|
115
|
+
|
|
116
|
+
SSLContextRef newContext(bool);
|
|
117
|
+
CFArrayRef getCertificateAuthorities() const;
|
|
118
|
+
std::string getCipherName(SSLCipherSuite) const;
|
|
119
|
+
|
|
120
|
+
private:
|
|
121
|
+
|
|
122
|
+
void parseCiphers(const std::string&);
|
|
123
|
+
|
|
124
|
+
bool _initialized;
|
|
125
|
+
CFArrayRef _certificateAuthorities;
|
|
126
|
+
CFMutableArrayRef _chain;
|
|
127
|
+
|
|
128
|
+
SSLProtocol _protocolVersionMax;
|
|
129
|
+
SSLProtocol _protocolVersionMin;
|
|
130
|
+
|
|
131
|
+
std::string _defaultDir;
|
|
132
|
+
|
|
133
|
+
std::vector<char> _dhParams;
|
|
134
|
+
|
|
135
|
+
std::vector<SSLCipherSuite> _ciphers;
|
|
136
|
+
IceUtil::Mutex _mutex;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
#elif defined(ICE_USE_SCHANNEL)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
#ifdef __MINGW32__
|
|
143
|
+
|
|
144
|
+
//
|
|
145
|
+
// Add some definitions missing from MinGW headers.
|
|
146
|
+
//
|
|
147
|
+
|
|
148
|
+
# ifndef CERT_TRUST_IS_EXPLICIT_DISTRUST
|
|
149
|
+
# define CERT_TRUST_IS_EXPLICIT_DISTRUST 0x04000000
|
|
150
|
+
# endif
|
|
151
|
+
|
|
152
|
+
# ifndef CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
|
|
153
|
+
# define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT 0x08000000
|
|
154
|
+
# endif
|
|
155
|
+
|
|
156
|
+
# ifndef SECBUFFER_ALERT
|
|
157
|
+
# define SECBUFFER_ALERT 17
|
|
158
|
+
# endif
|
|
159
|
+
|
|
160
|
+
# ifndef SCH_SEND_ROOT_CERT
|
|
161
|
+
# define SCH_SEND_ROOT_CERT 0x00040000
|
|
162
|
+
# endif
|
|
163
|
+
|
|
164
|
+
# ifndef SP_PROT_TLS1_1_SERVER
|
|
165
|
+
# define SP_PROT_TLS1_1_SERVER 0x00000100
|
|
166
|
+
# endif
|
|
167
|
+
|
|
168
|
+
# ifndef SP_PROT_TLS1_1_CLIENT
|
|
169
|
+
# define SP_PROT_TLS1_1_CLIENT 0x00000200
|
|
170
|
+
# endif
|
|
171
|
+
|
|
172
|
+
# ifndef SP_PROT_TLS1_2_SERVER
|
|
173
|
+
# define SP_PROT_TLS1_2_SERVER 0x00000400
|
|
174
|
+
# endif
|
|
175
|
+
|
|
176
|
+
# ifndef SP_PROT_TLS1_2_CLIENT
|
|
177
|
+
# define SP_PROT_TLS1_2_CLIENT 0x00000800
|
|
178
|
+
# endif
|
|
179
|
+
|
|
180
|
+
#endif
|
|
181
|
+
class SChannelEngine : public SSLEngine
|
|
182
|
+
{
|
|
183
|
+
public:
|
|
184
|
+
|
|
185
|
+
SChannelEngine(const Ice::CommunicatorPtr&);
|
|
186
|
+
|
|
187
|
+
//
|
|
188
|
+
// Setup the engine.
|
|
189
|
+
//
|
|
190
|
+
virtual void initialize();
|
|
191
|
+
|
|
192
|
+
virtual bool initialized() const;
|
|
193
|
+
|
|
194
|
+
//
|
|
195
|
+
// Destroy the engine.
|
|
196
|
+
//
|
|
197
|
+
virtual void destroy();
|
|
198
|
+
|
|
199
|
+
std::string getCipherName(ALG_ID) const;
|
|
200
|
+
|
|
201
|
+
CredHandle newCredentialsHandle(bool);
|
|
202
|
+
|
|
203
|
+
HCERTCHAINENGINE chainEngine() const;
|
|
204
|
+
|
|
205
|
+
private:
|
|
206
|
+
|
|
207
|
+
void parseCiphers(const std::string&);
|
|
208
|
+
|
|
209
|
+
bool _initialized;
|
|
210
|
+
std::vector<PCCERT_CONTEXT> _allCerts;
|
|
211
|
+
std::vector<PCCERT_CONTEXT> _certs;
|
|
212
|
+
DWORD _protocols;
|
|
213
|
+
IceUtil::Mutex _mutex;
|
|
214
|
+
|
|
215
|
+
std::vector<HCERTSTORE> _stores;
|
|
216
|
+
|
|
217
|
+
HCERTSTORE _rootStore;
|
|
218
|
+
|
|
219
|
+
HCERTCHAINENGINE _chainEngine;
|
|
220
|
+
std::vector<ALG_ID> _ciphers;
|
|
221
|
+
};
|
|
222
|
+
#else // OpenSSL
|
|
223
|
+
class OpenSSLEngine : public SSLEngine
|
|
224
|
+
{
|
|
225
|
+
public:
|
|
226
|
+
|
|
227
|
+
OpenSSLEngine(const Ice::CommunicatorPtr&);
|
|
228
|
+
~OpenSSLEngine();
|
|
229
|
+
|
|
230
|
+
virtual void initialize();
|
|
231
|
+
virtual bool initialized() const;
|
|
232
|
+
virtual void destroy();
|
|
233
|
+
|
|
234
|
+
int verifyCallback(int , SSL*, X509_STORE_CTX*);
|
|
235
|
+
# ifndef OPENSSL_NO_DH
|
|
236
|
+
DH* dhParams(int);
|
|
237
|
+
# endif
|
|
238
|
+
SSL_CTX* context() const;
|
|
239
|
+
void context(SSL_CTX*);
|
|
240
|
+
std::string sslErrors() const;
|
|
241
|
+
|
|
242
|
+
private:
|
|
243
|
+
|
|
244
|
+
SSL_METHOD* getMethod(int);
|
|
245
|
+
void setOptions(int);
|
|
246
|
+
enum Protocols { SSLv3 = 0x01, TLSv1_0 = 0x02, TLSv1_1 = 0x04, TLSv1_2 = 0x08 };
|
|
247
|
+
int parseProtocols(const Ice::StringSeq&) const;
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
bool _initOpenSSL;
|
|
251
|
+
bool _initialized;
|
|
252
|
+
SSL_CTX* _ctx;
|
|
253
|
+
std::string _defaultDir;
|
|
254
|
+
|
|
255
|
+
# ifndef OPENSSL_NO_DH
|
|
256
|
+
DHParamsPtr _dhParams;
|
|
257
|
+
# endif
|
|
258
|
+
IceUtil::Mutex _mutex;
|
|
259
|
+
};
|
|
260
|
+
#endif
|
|
261
|
+
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
#endif
|