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,75 @@
|
|
|
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_TRANSCEIVER_I_H
|
|
11
|
+
#define ICE_SSL_TRANSCEIVER_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/StreamSocket.h>
|
|
21
|
+
|
|
22
|
+
#ifdef ICE_USE_OPENSSL
|
|
23
|
+
|
|
24
|
+
typedef struct ssl_st SSL;
|
|
25
|
+
typedef struct bio_st BIO;
|
|
26
|
+
|
|
27
|
+
namespace IceSSL
|
|
28
|
+
{
|
|
29
|
+
|
|
30
|
+
class ConnectorI;
|
|
31
|
+
class AcceptorI;
|
|
32
|
+
|
|
33
|
+
class TransceiverI : public IceInternal::Transceiver
|
|
34
|
+
{
|
|
35
|
+
public:
|
|
36
|
+
|
|
37
|
+
virtual IceInternal::NativeInfoPtr getNativeInfo();
|
|
38
|
+
|
|
39
|
+
virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer&, bool&);
|
|
40
|
+
virtual IceInternal::SocketOperation closing(bool, const Ice::LocalException&);
|
|
41
|
+
virtual void close();
|
|
42
|
+
virtual IceInternal::SocketOperation write(IceInternal::Buffer&);
|
|
43
|
+
virtual IceInternal::SocketOperation read(IceInternal::Buffer&, bool&);
|
|
44
|
+
virtual std::string protocol() const;
|
|
45
|
+
virtual std::string toString() const;
|
|
46
|
+
virtual std::string toDetailedString() const;
|
|
47
|
+
virtual Ice::ConnectionInfoPtr getInfo() const;
|
|
48
|
+
virtual void checkSendSize(const IceInternal::Buffer&);
|
|
49
|
+
|
|
50
|
+
private:
|
|
51
|
+
|
|
52
|
+
TransceiverI(const InstancePtr&, const IceInternal::StreamSocketPtr&, const std::string&, bool);
|
|
53
|
+
virtual ~TransceiverI();
|
|
54
|
+
|
|
55
|
+
virtual NativeConnectionInfoPtr getNativeConnectionInfo() const;
|
|
56
|
+
|
|
57
|
+
friend class ConnectorI;
|
|
58
|
+
friend class AcceptorI;
|
|
59
|
+
|
|
60
|
+
const InstancePtr _instance;
|
|
61
|
+
const OpenSSLEnginePtr _engine;
|
|
62
|
+
const std::string _host;
|
|
63
|
+
const std::string _adapterName;
|
|
64
|
+
const bool _incoming;
|
|
65
|
+
const IceInternal::StreamSocketPtr _stream;
|
|
66
|
+
|
|
67
|
+
SSL* _ssl;
|
|
68
|
+
};
|
|
69
|
+
typedef IceUtil::Handle<TransceiverI> TransceiverIPtr;
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#endif
|
|
@@ -0,0 +1,102 @@
|
|
|
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/PluginI.h>
|
|
11
|
+
#include <IceSSL/Instance.h>
|
|
12
|
+
#include <IceSSL/SSLEngine.h>
|
|
13
|
+
#include <IceSSL/EndpointI.h>
|
|
14
|
+
|
|
15
|
+
#include <Ice/WSEndpoint.h>
|
|
16
|
+
#include <Ice/ProtocolPluginFacade.h>
|
|
17
|
+
#include <Ice/ProtocolInstance.h>
|
|
18
|
+
#include <Ice/LocalException.h>
|
|
19
|
+
|
|
20
|
+
using namespace std;
|
|
21
|
+
using namespace Ice;
|
|
22
|
+
using namespace IceSSL;
|
|
23
|
+
|
|
24
|
+
//
|
|
25
|
+
// Plug-in factory function.
|
|
26
|
+
//
|
|
27
|
+
extern "C"
|
|
28
|
+
{
|
|
29
|
+
|
|
30
|
+
ICE_DECLSPEC_EXPORT Ice::Plugin*
|
|
31
|
+
createIceSSL(const CommunicatorPtr& communicator, const string& /*name*/, const StringSeq& /*args*/)
|
|
32
|
+
{
|
|
33
|
+
return new PluginI(communicator);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//
|
|
39
|
+
// Plugin implementation.
|
|
40
|
+
//
|
|
41
|
+
IceSSL::PluginI::PluginI(const Ice::CommunicatorPtr& communicator)
|
|
42
|
+
{
|
|
43
|
+
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
44
|
+
_engine = new SecureTransportEngine(communicator);
|
|
45
|
+
#elif defined(ICE_USE_SCHANNEL)
|
|
46
|
+
_engine = new SChannelEngine(communicator);
|
|
47
|
+
#else
|
|
48
|
+
_engine = new OpenSSLEngine(communicator);
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
IceInternal::ProtocolPluginFacadePtr facade = IceInternal::getProtocolPluginFacade(communicator);
|
|
52
|
+
|
|
53
|
+
//
|
|
54
|
+
// Register the endpoint factory. We have to do this now, rather
|
|
55
|
+
// than in initialize, because the communicator may need to
|
|
56
|
+
// interpret proxies before the plug-in is fully initialized.
|
|
57
|
+
//
|
|
58
|
+
IceInternal::EndpointFactoryPtr sslFactory = new EndpointFactoryI(new Instance(_engine, EndpointType, "ssl"));
|
|
59
|
+
facade->addEndpointFactory(sslFactory);
|
|
60
|
+
|
|
61
|
+
IceInternal::ProtocolInstancePtr wss = new IceInternal::ProtocolInstance(communicator, WSSEndpointType, "wss");
|
|
62
|
+
facade->addEndpointFactory(new IceInternal::WSEndpointFactory(wss, sslFactory->clone(wss)));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
void
|
|
66
|
+
IceSSL::PluginI::initialize()
|
|
67
|
+
{
|
|
68
|
+
_engine->initialize();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void
|
|
72
|
+
IceSSL::PluginI::destroy()
|
|
73
|
+
{
|
|
74
|
+
_engine->destroy();
|
|
75
|
+
_engine = 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
void
|
|
79
|
+
IceSSL::PluginI::setCertificateVerifier(const CertificateVerifierPtr& verifier)
|
|
80
|
+
{
|
|
81
|
+
_engine->setCertificateVerifier(verifier);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void
|
|
85
|
+
IceSSL::PluginI::setPasswordPrompt(const PasswordPromptPtr& prompt)
|
|
86
|
+
{
|
|
87
|
+
_engine->setPasswordPrompt(prompt);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
#ifdef ICE_USE_OPENSSL
|
|
91
|
+
void
|
|
92
|
+
IceSSL::PluginI::setContext(SSL_CTX* context)
|
|
93
|
+
{
|
|
94
|
+
_engine->context(context);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
SSL_CTX*
|
|
98
|
+
IceSSL::PluginI::getContext()
|
|
99
|
+
{
|
|
100
|
+
return _engine->context();
|
|
101
|
+
}
|
|
102
|
+
#endif
|
|
@@ -0,0 +1,56 @@
|
|
|
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_PLUGIN_I_H
|
|
11
|
+
#define ICE_SSL_PLUGIN_I_H
|
|
12
|
+
|
|
13
|
+
#include <IceSSL/Plugin.h>
|
|
14
|
+
#include <IceSSL/SSLEngineF.h>
|
|
15
|
+
#include <Ice/CommunicatorF.h>
|
|
16
|
+
|
|
17
|
+
namespace IceSSL
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
class PluginI : public IceSSL::Plugin
|
|
21
|
+
{
|
|
22
|
+
public:
|
|
23
|
+
|
|
24
|
+
PluginI(const Ice::CommunicatorPtr&);
|
|
25
|
+
|
|
26
|
+
//
|
|
27
|
+
// From Ice::Plugin.
|
|
28
|
+
//
|
|
29
|
+
virtual void initialize();
|
|
30
|
+
virtual void destroy();
|
|
31
|
+
|
|
32
|
+
//
|
|
33
|
+
// From IceSSL::Plugin.
|
|
34
|
+
//
|
|
35
|
+
virtual void setCertificateVerifier(const CertificateVerifierPtr&);
|
|
36
|
+
virtual void setPasswordPrompt(const PasswordPromptPtr&);
|
|
37
|
+
|
|
38
|
+
#ifdef ICE_USE_OPENSSL
|
|
39
|
+
virtual void setContext(SSL_CTX*);
|
|
40
|
+
virtual SSL_CTX* getContext();
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
|
|
45
|
+
#if defined(ICE_USE_SECURE_TRANSPORT)
|
|
46
|
+
SecureTransportEnginePtr _engine;
|
|
47
|
+
#elif defined(ICE_USE_SCHANNEL)
|
|
48
|
+
SChannelEnginePtr _engine;
|
|
49
|
+
#else
|
|
50
|
+
OpenSSLEnginePtr _engine;
|
|
51
|
+
#endif
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#endif
|
|
@@ -0,0 +1,541 @@
|
|
|
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 <IceUtil/StringUtil.h>
|
|
11
|
+
|
|
12
|
+
#include <IceSSL/Plugin.h>
|
|
13
|
+
#include <IceSSL/RFC2253.h>
|
|
14
|
+
#include <Ice/Object.h>
|
|
15
|
+
|
|
16
|
+
using namespace std;
|
|
17
|
+
using namespace IceSSL;
|
|
18
|
+
|
|
19
|
+
namespace
|
|
20
|
+
{
|
|
21
|
+
|
|
22
|
+
//
|
|
23
|
+
// See RFC 2253 and RFC 1779.
|
|
24
|
+
//
|
|
25
|
+
|
|
26
|
+
string special = ",=+<>#;";
|
|
27
|
+
string hexvalid = "0123456789abcdefABCDEF";
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static char unescapeHex(const string&, size_t);
|
|
32
|
+
static pair<string,string> parseNameComponent(const string&, size_t&);
|
|
33
|
+
static pair<string,string> parseAttributeTypeAndValue(const string&, size_t&);
|
|
34
|
+
static string parseAttributeType(const string&, size_t&);
|
|
35
|
+
static string parseAttributeValue(const string&, size_t&);
|
|
36
|
+
static string parsePair(const string&, size_t&);
|
|
37
|
+
static string parseHexPair(const string&, size_t&, bool);
|
|
38
|
+
static void eatWhite(const string&, size_t&);
|
|
39
|
+
|
|
40
|
+
IceSSL::RFC2253::RDNEntrySeq
|
|
41
|
+
IceSSL::RFC2253::parse(const string& data)
|
|
42
|
+
{
|
|
43
|
+
RDNEntrySeq results;
|
|
44
|
+
RDNEntry current;
|
|
45
|
+
current.negate = false;
|
|
46
|
+
size_t pos = 0;
|
|
47
|
+
while(pos < data.size())
|
|
48
|
+
{
|
|
49
|
+
eatWhite(data, pos);
|
|
50
|
+
if(pos < data.size() && data[pos] == '!')
|
|
51
|
+
{
|
|
52
|
+
if(!current.rdn.empty())
|
|
53
|
+
{
|
|
54
|
+
throw ParseException(__FILE__, __LINE__, "negation symbol '!' must appear at start of list");
|
|
55
|
+
}
|
|
56
|
+
++pos;
|
|
57
|
+
current.negate = true;
|
|
58
|
+
}
|
|
59
|
+
current.rdn.push_back(parseNameComponent(data, pos));
|
|
60
|
+
eatWhite(data, pos);
|
|
61
|
+
if(pos < data.size() && data[pos] == ',')
|
|
62
|
+
{
|
|
63
|
+
++pos;
|
|
64
|
+
}
|
|
65
|
+
else if(pos < data.size() && data[pos] == ';')
|
|
66
|
+
{
|
|
67
|
+
++pos;
|
|
68
|
+
results.push_back(current);
|
|
69
|
+
current.rdn.clear();
|
|
70
|
+
current.negate = false;
|
|
71
|
+
}
|
|
72
|
+
else if(pos < data.size())
|
|
73
|
+
{
|
|
74
|
+
throw ParseException(__FILE__, __LINE__, "expected ',' or ';' at `" + data.substr(pos) + "'");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if(!current.rdn.empty())
|
|
78
|
+
{
|
|
79
|
+
results.push_back(current);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return results;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
IceSSL::RFC2253::RDNSeq
|
|
86
|
+
IceSSL::RFC2253::parseStrict(const string& data)
|
|
87
|
+
{
|
|
88
|
+
RDNSeq results;
|
|
89
|
+
size_t pos = 0;
|
|
90
|
+
while(pos < data.size())
|
|
91
|
+
{
|
|
92
|
+
results.push_back(parseNameComponent(data, pos));
|
|
93
|
+
eatWhite(data, pos);
|
|
94
|
+
if(pos < data.size() && (data[pos] == ',' || data[pos] == ';'))
|
|
95
|
+
{
|
|
96
|
+
++pos;
|
|
97
|
+
}
|
|
98
|
+
else if(pos < data.size())
|
|
99
|
+
{
|
|
100
|
+
throw ParseException(__FILE__, __LINE__, "expected ',' or ';' at `" + data.substr(pos) + "'");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return results;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
string
|
|
107
|
+
IceSSL::RFC2253::unescape(const string& data)
|
|
108
|
+
{
|
|
109
|
+
if(data.size() == 0)
|
|
110
|
+
{
|
|
111
|
+
return data;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if(data[0] == '"')
|
|
115
|
+
{
|
|
116
|
+
if(data[data.size() - 1] != '"')
|
|
117
|
+
{
|
|
118
|
+
throw ParseException(__FILE__, __LINE__, "unescape: missing \"");
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
//
|
|
122
|
+
// Return the string without quotes.
|
|
123
|
+
//
|
|
124
|
+
return data.substr(1, data.size() - 2);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//
|
|
128
|
+
// Unescape the entire string.
|
|
129
|
+
//
|
|
130
|
+
string result;
|
|
131
|
+
if(data[0] == '#')
|
|
132
|
+
{
|
|
133
|
+
size_t pos = 1;
|
|
134
|
+
while(pos < data.size())
|
|
135
|
+
{
|
|
136
|
+
result += unescapeHex(data, pos);
|
|
137
|
+
pos += 2;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else
|
|
141
|
+
{
|
|
142
|
+
size_t pos = 0;
|
|
143
|
+
while(pos < data.size())
|
|
144
|
+
{
|
|
145
|
+
if(data[pos] != '\\')
|
|
146
|
+
{
|
|
147
|
+
result += data[pos];
|
|
148
|
+
++pos;
|
|
149
|
+
}
|
|
150
|
+
else
|
|
151
|
+
{
|
|
152
|
+
++pos;
|
|
153
|
+
if(pos >= data.size())
|
|
154
|
+
{
|
|
155
|
+
throw ParseException(__FILE__, __LINE__, "unescape: invalid escape sequence");
|
|
156
|
+
}
|
|
157
|
+
if(special.find(data[pos]) != string::npos || data[pos] != '\\' || data[pos] != '"')
|
|
158
|
+
{
|
|
159
|
+
result += data[pos];
|
|
160
|
+
++pos;
|
|
161
|
+
}
|
|
162
|
+
else
|
|
163
|
+
{
|
|
164
|
+
result += unescapeHex(data, pos);
|
|
165
|
+
pos += 2;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
static int
|
|
175
|
+
hexToInt(char v)
|
|
176
|
+
{
|
|
177
|
+
if(v >= '0' && v <= '9')
|
|
178
|
+
{
|
|
179
|
+
return v - '0';
|
|
180
|
+
}
|
|
181
|
+
if(v >= 'a' && v <= 'f')
|
|
182
|
+
{
|
|
183
|
+
return 10 + (v - 'a');
|
|
184
|
+
}
|
|
185
|
+
if(v >= 'A' && v <= 'F')
|
|
186
|
+
{
|
|
187
|
+
return 10 + (v - 'A');
|
|
188
|
+
}
|
|
189
|
+
throw ParseException(__FILE__, __LINE__, "unescape: invalid hex pair");
|
|
190
|
+
return 0; // To satisfy the compiler.
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
static char
|
|
194
|
+
unescapeHex(const string& data, size_t pos)
|
|
195
|
+
{
|
|
196
|
+
assert(pos < data.size());
|
|
197
|
+
if(pos + 2 >= data.size())
|
|
198
|
+
{
|
|
199
|
+
throw ParseException(__FILE__, __LINE__, "unescape: invalid hex pair");
|
|
200
|
+
}
|
|
201
|
+
return static_cast<char>(hexToInt(data[pos]) * 16 + hexToInt(data[pos + 1]));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
static pair<string,string>
|
|
205
|
+
parseNameComponent(const string& data, size_t& pos)
|
|
206
|
+
{
|
|
207
|
+
pair<string, string> final = parseAttributeTypeAndValue(data, pos);
|
|
208
|
+
while(pos < data.size())
|
|
209
|
+
{
|
|
210
|
+
eatWhite(data, pos);
|
|
211
|
+
if(pos < data.size() && data[pos] == '+')
|
|
212
|
+
{
|
|
213
|
+
++pos;
|
|
214
|
+
}
|
|
215
|
+
else
|
|
216
|
+
{
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
pair<string, string> p = parseAttributeTypeAndValue(data, pos);
|
|
220
|
+
final.second += "+";
|
|
221
|
+
final.second += p.first;
|
|
222
|
+
final.second += '=';
|
|
223
|
+
final.second += p.second;
|
|
224
|
+
}
|
|
225
|
+
return final;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
static pair<string,string>
|
|
229
|
+
parseAttributeTypeAndValue(const string& data, size_t& pos)
|
|
230
|
+
{
|
|
231
|
+
pair<string, string> p;
|
|
232
|
+
p.first = parseAttributeType(data, pos);
|
|
233
|
+
eatWhite(data, pos);
|
|
234
|
+
|
|
235
|
+
if(pos >= data.size())
|
|
236
|
+
{
|
|
237
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute type/value pair (unexpected end of data)");
|
|
238
|
+
}
|
|
239
|
+
if(data[pos] != '=')
|
|
240
|
+
{
|
|
241
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute type/value pair (missing =)");
|
|
242
|
+
}
|
|
243
|
+
++pos;
|
|
244
|
+
p.second = parseAttributeValue(data, pos);
|
|
245
|
+
return p;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
static string
|
|
249
|
+
parseAttributeType(const string& data, size_t& pos)
|
|
250
|
+
{
|
|
251
|
+
eatWhite(data, pos);
|
|
252
|
+
if(pos >= data.size())
|
|
253
|
+
{
|
|
254
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute type (expected end of data)");
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
string result;
|
|
258
|
+
|
|
259
|
+
//
|
|
260
|
+
// RFC 1779.
|
|
261
|
+
// <key> ::= 1*( <keychar> ) | "OID." <oid> | "oid." <oid>
|
|
262
|
+
// <oid> ::= <digitstring> | <digitstring> "." <oid>
|
|
263
|
+
// RFC 2253:
|
|
264
|
+
// attributeType = (ALPHA 1*keychar) | oid
|
|
265
|
+
// keychar = ALPHA | DIGIT | "-"
|
|
266
|
+
// oid = 1*DIGIT *("." 1*DIGIT)
|
|
267
|
+
//
|
|
268
|
+
// In section 4 of RFC 2253 the document says:
|
|
269
|
+
// Implementations MUST allow an oid in the attribute type to be
|
|
270
|
+
// prefixed by one of the character strings "oid." or "OID.".
|
|
271
|
+
//
|
|
272
|
+
// Here we must also check for "oid." and "OID." before parsing
|
|
273
|
+
// according to the ALPHA KEYCHAR* rule.
|
|
274
|
+
//
|
|
275
|
+
// First the OID case.
|
|
276
|
+
//
|
|
277
|
+
if(IceUtilInternal::isDigit(data[pos]) ||
|
|
278
|
+
(data.size() - pos >= 4 && (data.substr(pos, 4) == "oid." || data.substr(pos, 4) == "OID.")))
|
|
279
|
+
{
|
|
280
|
+
if(!IceUtilInternal::isDigit(data[pos]))
|
|
281
|
+
{
|
|
282
|
+
result += data.substr(pos, 4);
|
|
283
|
+
pos += 4;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
while(true)
|
|
287
|
+
{
|
|
288
|
+
// 1*DIGIT
|
|
289
|
+
while(pos < data.size() && IceUtilInternal::isDigit(data[pos]))
|
|
290
|
+
{
|
|
291
|
+
result += data[pos];
|
|
292
|
+
++pos;
|
|
293
|
+
}
|
|
294
|
+
// "." 1*DIGIT
|
|
295
|
+
if(pos < data.size() && data[pos] == '.')
|
|
296
|
+
{
|
|
297
|
+
result += data[pos];
|
|
298
|
+
++pos;
|
|
299
|
+
// 1*DIGIT must follow "."
|
|
300
|
+
if(pos < data.size() && !IceUtilInternal::isDigit(data[pos]))
|
|
301
|
+
{
|
|
302
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute type (expected end of data)");
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
else
|
|
306
|
+
{
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else if(IceUtilInternal::isAlpha(data[pos]))
|
|
312
|
+
{
|
|
313
|
+
//
|
|
314
|
+
// The grammar is wrong in this case. It should be ALPHA
|
|
315
|
+
// KEYCHAR* otherwise it will not accept "O" as a valid
|
|
316
|
+
// attribute type.
|
|
317
|
+
//
|
|
318
|
+
result += data[pos];
|
|
319
|
+
++pos;
|
|
320
|
+
// 1* KEYCHAR
|
|
321
|
+
while(pos < data.size() &&
|
|
322
|
+
(IceUtilInternal::isAlpha(data[pos]) || IceUtilInternal::isDigit(data[pos]) || data[pos] == '-'))
|
|
323
|
+
{
|
|
324
|
+
result += data[pos];
|
|
325
|
+
++pos;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else
|
|
329
|
+
{
|
|
330
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute type");
|
|
331
|
+
}
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
static string
|
|
336
|
+
parseAttributeValue(const string& data, size_t& pos)
|
|
337
|
+
{
|
|
338
|
+
eatWhite(data, pos);
|
|
339
|
+
string result;
|
|
340
|
+
if(pos >= data.size())
|
|
341
|
+
{
|
|
342
|
+
return result;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
//
|
|
346
|
+
// RFC 2253
|
|
347
|
+
// # hexstring
|
|
348
|
+
//
|
|
349
|
+
if(data[pos] == '#')
|
|
350
|
+
{
|
|
351
|
+
result += data[pos];
|
|
352
|
+
++pos;
|
|
353
|
+
while(true)
|
|
354
|
+
{
|
|
355
|
+
string h = parseHexPair(data, pos, true);
|
|
356
|
+
if(h.size() == 0)
|
|
357
|
+
{
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
result += h;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
//
|
|
364
|
+
// RFC 2253
|
|
365
|
+
// QUOTATION *( quotechar | pair ) QUOTATION ; only from v2
|
|
366
|
+
// quotechar = <any character except "\" or QUOTATION >
|
|
367
|
+
//
|
|
368
|
+
else if(data[pos] == '"')
|
|
369
|
+
{
|
|
370
|
+
result += data[pos];
|
|
371
|
+
++pos;
|
|
372
|
+
while(true)
|
|
373
|
+
{
|
|
374
|
+
if(pos >= data.size())
|
|
375
|
+
{
|
|
376
|
+
throw ParseException(__FILE__, __LINE__, "invalid attribute value (unexpected end of data)");
|
|
377
|
+
}
|
|
378
|
+
// final terminating "
|
|
379
|
+
if(data[pos] == '"')
|
|
380
|
+
{
|
|
381
|
+
result += data[pos];
|
|
382
|
+
++pos;
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
// any character except '\'
|
|
386
|
+
else if(data[pos] != '\\')
|
|
387
|
+
{
|
|
388
|
+
result += data[pos];
|
|
389
|
+
++pos;
|
|
390
|
+
}
|
|
391
|
+
// pair '\'
|
|
392
|
+
else
|
|
393
|
+
{
|
|
394
|
+
result += parsePair(data, pos);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
//
|
|
399
|
+
// RFC 2253
|
|
400
|
+
// * (stringchar | pair)
|
|
401
|
+
// stringchar = <any character except one of special, "\" or QUOTATION >
|
|
402
|
+
//
|
|
403
|
+
else
|
|
404
|
+
{
|
|
405
|
+
while(pos < data.size())
|
|
406
|
+
{
|
|
407
|
+
if(data[pos] == '\\')
|
|
408
|
+
{
|
|
409
|
+
result += parsePair(data, pos);
|
|
410
|
+
}
|
|
411
|
+
else if(special.find(data[pos]) == string::npos && data[pos] != '"')
|
|
412
|
+
{
|
|
413
|
+
result += data[pos];
|
|
414
|
+
++pos;
|
|
415
|
+
}
|
|
416
|
+
else
|
|
417
|
+
{
|
|
418
|
+
break;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
return result;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
//
|
|
426
|
+
// RFC2253:
|
|
427
|
+
// pair = "\" ( special | "\" | QUOTATION | hexpair )
|
|
428
|
+
//
|
|
429
|
+
static string
|
|
430
|
+
parsePair(const string& data, size_t& pos)
|
|
431
|
+
{
|
|
432
|
+
string result;
|
|
433
|
+
|
|
434
|
+
assert(data[pos] == '\\');
|
|
435
|
+
result += data[pos];
|
|
436
|
+
++pos;
|
|
437
|
+
|
|
438
|
+
if(pos >= data.size())
|
|
439
|
+
{
|
|
440
|
+
throw ParseException(__FILE__, __LINE__, "invalid escape format (unexpected end of data)");
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if(special.find(data[pos]) != string::npos || data[pos] != '\\' || data[pos] != '"')
|
|
444
|
+
{
|
|
445
|
+
result += data[pos];
|
|
446
|
+
++pos;
|
|
447
|
+
return result;
|
|
448
|
+
}
|
|
449
|
+
return parseHexPair(data, pos, false);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
//
|
|
453
|
+
// RFC 2253
|
|
454
|
+
// hexpair = hexchar hexchar
|
|
455
|
+
//
|
|
456
|
+
static string
|
|
457
|
+
parseHexPair(const string& data, size_t& pos, bool allowEmpty)
|
|
458
|
+
{
|
|
459
|
+
string result;
|
|
460
|
+
if(pos < data.size() && hexvalid.find(data[pos]) != string::npos)
|
|
461
|
+
{
|
|
462
|
+
result += data[pos];
|
|
463
|
+
++pos;
|
|
464
|
+
}
|
|
465
|
+
if(pos < data.size() && hexvalid.find(data[pos]) != string::npos)
|
|
466
|
+
{
|
|
467
|
+
result += data[pos];
|
|
468
|
+
++pos;
|
|
469
|
+
}
|
|
470
|
+
if(result.size() != 2)
|
|
471
|
+
{
|
|
472
|
+
if(allowEmpty && result.size() == 0)
|
|
473
|
+
{
|
|
474
|
+
return result;
|
|
475
|
+
}
|
|
476
|
+
throw ParseException(__FILE__, __LINE__, "invalid hex format");
|
|
477
|
+
}
|
|
478
|
+
return result;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
//
|
|
482
|
+
// RFC 2253:
|
|
483
|
+
//
|
|
484
|
+
// Implementations MUST allow for space (' ' ASCII 32) characters to be
|
|
485
|
+
// present between name-component and ',', between attributeTypeAndValue
|
|
486
|
+
// and '+', between attributeType and '=', and between '=' and
|
|
487
|
+
// attributeValue. These space characters are ignored when parsing.
|
|
488
|
+
//
|
|
489
|
+
static void
|
|
490
|
+
eatWhite(const string& data, size_t& pos)
|
|
491
|
+
{
|
|
492
|
+
while(pos < data.size() && data[pos] == ' ')
|
|
493
|
+
{
|
|
494
|
+
++pos;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
#ifdef never
|
|
499
|
+
void
|
|
500
|
+
print(const list< list<pair<string, string> > >& r)
|
|
501
|
+
{
|
|
502
|
+
if(r.size() > 1)
|
|
503
|
+
{
|
|
504
|
+
cout << "result: " << r.size() << " DNs" << endl;
|
|
505
|
+
}
|
|
506
|
+
for(list< list<pair<string, string> > >::const_iterator q = r.begin(); q != r.end(); ++q)
|
|
507
|
+
{
|
|
508
|
+
list<pair<string, string> > l = *q;
|
|
509
|
+
cout << "result: " << l.size() << " RDNs" << endl;
|
|
510
|
+
for(list<pair<string, string> >::const_iterator p = l.begin(); p != l.end(); ++p)
|
|
511
|
+
{
|
|
512
|
+
cout << "\t\"" << p->first << "\"=\"" << p->second << "\"" << endl;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
int
|
|
518
|
+
main()
|
|
519
|
+
{
|
|
520
|
+
string examples[] = {
|
|
521
|
+
"CN=Steve Kille,O=Isode Limited,C=GB",
|
|
522
|
+
"OU=Sales+CN=J. Smith,O=Widget Inc.,C=US",
|
|
523
|
+
"CN=L. Eagle,O=Sue\\, Grabbit and Runn,C=GB",
|
|
524
|
+
"CN=Before\\0DAfter,O=Test,C=GB",
|
|
525
|
+
"1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB",
|
|
526
|
+
"SN=Lu\\C4\\8Di\\C4\\87",
|
|
527
|
+
};
|
|
528
|
+
try
|
|
529
|
+
{
|
|
530
|
+
for(int i = 0; i < sizeof(examples)/sizeof(examples[0]); ++i)
|
|
531
|
+
{
|
|
532
|
+
cout << "string: " << examples[i] << endl;
|
|
533
|
+
print(RFC2253::parse(examples[i]));
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
catch(const RFC2253::ParseException& e)
|
|
537
|
+
{
|
|
538
|
+
cout << "error: " << e.reason << endl;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
#endif
|