zeroc-ice 3.7.11 → 3.8.1

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.
Files changed (895) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +159 -376
  3. data/dist/IceRuby/Communicator.h +8 -9
  4. data/dist/IceRuby/Config.h +23 -89
  5. data/dist/IceRuby/Connection.cpp +111 -219
  6. data/dist/IceRuby/Connection.h +8 -12
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +63 -65
  10. data/dist/IceRuby/Endpoint.h +7 -11
  11. data/dist/IceRuby/ImplicitContext.cpp +26 -31
  12. data/dist/IceRuby/ImplicitContext.h +6 -10
  13. data/dist/IceRuby/Init.cpp +27 -40
  14. data/dist/IceRuby/Logger.cpp +23 -28
  15. data/dist/IceRuby/Logger.h +8 -12
  16. data/dist/IceRuby/Operation.cpp +177 -219
  17. data/dist/IceRuby/Operation.h +15 -18
  18. data/dist/IceRuby/Properties.cpp +133 -89
  19. data/dist/IceRuby/Properties.h +6 -10
  20. data/dist/IceRuby/Proxy.cpp +179 -649
  21. data/dist/IceRuby/Proxy.h +11 -12
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +88 -94
  25. data/dist/IceRuby/Slice.h +3 -7
  26. data/dist/IceRuby/Types.cpp +987 -1190
  27. data/dist/IceRuby/Types.h +390 -461
  28. data/dist/IceRuby/Util.cpp +214 -473
  29. data/dist/IceRuby/Util.h +378 -479
  30. data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
  31. data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
  32. data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +4 -10
  33. data/dist/ice/cpp/include/Ice/Buffer.h +116 -111
  34. data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
  35. data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
  36. data/dist/ice/cpp/include/Ice/Config.h +46 -62
  37. data/dist/ice/cpp/include/Ice/Connection.h +410 -0
  38. data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
  39. data/dist/ice/cpp/include/Ice/ConnectionIF.h +6 -28
  40. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
  41. data/dist/ice/cpp/include/Ice/Current.h +60 -0
  42. data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
  43. data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
  44. data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
  45. data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
  46. data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
  47. data/dist/ice/cpp/include/Ice/Exception.h +46 -151
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +11 -27
  50. data/dist/ice/cpp/include/Ice/Ice.h +53 -48
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +165 -326
  52. data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
  53. data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
  54. data/dist/ice/cpp/include/Ice/Initialize.h +113 -927
  55. data/dist/ice/cpp/include/Ice/InputStream.h +748 -1320
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +4 -10
  57. data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
  58. data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
  59. data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
  60. data/dist/ice/cpp/include/Ice/Logger.h +62 -0
  61. data/dist/ice/cpp/include/Ice/LoggerUtil.h +124 -147
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +41 -71
  64. data/dist/ice/cpp/include/Ice/Object.h +151 -490
  65. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
  66. data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
  67. data/dist/ice/cpp/include/Ice/ObjectF.h +5 -19
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +115 -132
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +392 -748
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +756 -956
  72. data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
  73. data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
  74. data/dist/ice/cpp/include/{IceUtil → Ice}/PopDisableWarnings.h +8 -6
  75. data/dist/ice/cpp/include/Ice/Properties.h +307 -0
  76. data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
  77. data/dist/ice/cpp/include/Ice/Proxy.h +665 -5094
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +2 -44
  79. data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
  80. data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
  81. data/dist/ice/cpp/include/Ice/ReferenceF.h +4 -19
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +8 -18
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +276 -0
  84. data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
  85. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
  86. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
  87. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
  88. data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
  89. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +286 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +182 -342
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +113 -160
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +17 -27
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +532 -1070
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +152 -63
  98. data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
  99. data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
  100. data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
  101. data/dist/ice/cpp/include/Ice/UUID.h +6 -9
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +4 -79
  104. data/dist/ice/cpp/include/Ice/Value.h +103 -115
  105. data/dist/ice/cpp/include/Ice/ValueF.h +6 -11
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +16 -1877
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -1185
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +46 -146
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +49 -93
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +70 -226
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +494 -3850
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +937 -4603
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +197 -929
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +249 -1301
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +637 -2620
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +429 -1783
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +18 -65
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +73 -318
  124. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
  125. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
  126. data/dist/ice/cpp/src/Ice/Acceptor.h +28 -24
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +6 -14
  128. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
  129. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
  130. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
  131. data/dist/ice/cpp/src/Ice/ArgVector.cpp +17 -18
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +19 -25
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +66 -66
  134. data/dist/ice/cpp/src/Ice/Base64.h +14 -19
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +70 -121
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +37 -47
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +73 -41
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +215 -249
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +38 -60
  141. data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
  142. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
  143. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
  144. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +63 -184
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +30 -51
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +4 -14
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +578 -792
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +200 -200
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +6 -19
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +1674 -1782
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +333 -293
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +25 -19
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +4 -11
  156. data/dist/ice/cpp/src/{IceUtil → Ice}/ConsoleUtil.cpp +32 -53
  157. data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
  158. data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
  159. data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
  160. data/dist/ice/cpp/src/Ice/DLLMain.cpp +25 -35
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +41 -119
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +27 -41
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +4 -11
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +26 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +44 -112
  168. data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
  169. data/dist/ice/cpp/src/Ice/Endian.h +40 -0
  170. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +35 -59
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +82 -103
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +4 -11
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +54 -87
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +28 -33
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +4 -11
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +53 -23
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +132 -200
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +11 -39
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +3 -26
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +46 -56
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +4 -14
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +3 -816
  183. data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
  184. data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
  185. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
  186. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
  187. data/dist/ice/cpp/src/Ice/HashUtil.h +46 -32
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +431 -431
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +95 -100
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +207 -324
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +80 -126
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +6 -17
  193. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
  194. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
  195. data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
  196. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
  197. data/dist/ice/cpp/src/Ice/Initialize.cpp +48 -542
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +848 -1385
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +816 -827
  200. data/dist/ice/cpp/src/Ice/Instance.h +202 -212
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +526 -661
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +171 -192
  203. data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
  204. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
  205. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +291 -329
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +144 -157
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +8 -17
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +561 -743
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +18 -28
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +66 -91
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +36 -41
  212. data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
  213. data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
  214. data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +14 -38
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +194 -280
  217. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
  218. data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
  219. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
  220. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
  221. data/dist/ice/cpp/src/Ice/Network.cpp +595 -917
  222. data/dist/ice/cpp/src/Ice/Network.h +189 -213
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +2 -10
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +99 -104
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +49 -54
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +4 -11
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +16 -18
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +22 -27
  229. data/dist/ice/cpp/src/Ice/Object.cpp +152 -338
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +170 -113
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +41 -41
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +4 -15
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +580 -727
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +149 -145
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +36 -17
  236. data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
  237. data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
  238. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +147 -187
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +56 -64
  240. data/dist/ice/cpp/src/{IceUtil → Ice}/Options.cpp +187 -258
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +516 -732
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +610 -543
  245. data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
  246. data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
  247. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +118 -277
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +41 -48
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +519 -1341
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +49 -64
  252. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
  253. data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
  254. data/dist/ice/cpp/src/Ice/Protocol.cpp +129 -94
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +117 -62
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +63 -82
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +4 -11
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +10 -32
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +25 -54
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +294 -1357
  262. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
  263. data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
  264. data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
  265. data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
  266. data/dist/ice/cpp/src/Ice/Random.h +23 -0
  267. data/dist/ice/cpp/src/Ice/Reference.cpp +635 -1097
  268. data/dist/ice/cpp/src/Ice/Reference.h +314 -298
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +320 -378
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +48 -66
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +4 -9
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +15 -24
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +43 -68
  274. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
  275. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
  276. data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
  277. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +51 -57
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +39 -46
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +4 -9
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +97 -201
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +61 -118
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +6 -14
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +86 -60
  284. data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
  285. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
  286. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
  287. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +521 -0
  288. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
  289. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
  290. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +646 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/{IceSSL → Ice/SSL}/RFC2253.cpp +85 -88
  293. data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
  294. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
  295. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
  296. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
  297. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
  298. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
  299. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
  300. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
  301. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +69 -0
  302. data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
  303. data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
  304. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
  305. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
  306. data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
  307. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +673 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +118 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1449 -0
  310. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
  311. data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
  312. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1088 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +825 -0
  315. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
  316. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
  317. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
  318. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
  319. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1048 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +233 -0
  322. data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
  323. data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
  324. data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
  325. data/dist/ice/cpp/src/Ice/Selector.cpp +341 -606
  326. data/dist/ice/cpp/src/Ice/Selector.h +167 -224
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +195 -128
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +52 -55
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +548 -641
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +13 -26
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +17 -96
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +104 -151
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +48 -60
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +586 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +41 -47
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +24 -27
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +16 -17
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +19 -25
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +67 -88
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +34 -40
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +42 -41
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +26 -35
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +172 -146
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +76 -80
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +38 -26
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +40 -45
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +333 -515
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +202 -290
  353. data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
  354. data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
  355. data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
  356. data/dist/ice/cpp/src/Ice/Timer.cpp +73 -167
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +11 -29
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +22 -28
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +4 -11
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +136 -215
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +27 -16
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +3 -7
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +35 -32
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +10 -20
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +39 -39
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +27 -36
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +178 -213
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +82 -85
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +201 -221
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +68 -74
  373. data/dist/ice/cpp/{include/IceUtil → src/Ice}/UndefSysMacros.h +12 -12
  374. data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
  375. data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
  376. data/dist/ice/cpp/src/Ice/Value.cpp +107 -38
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +10 -15
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +31 -37
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +25 -40
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +26 -33
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +164 -217
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +72 -83
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +469 -458
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +117 -123
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +20 -29
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +20 -31
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +24 -34
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +454 -1744
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +824 -1971
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +190 -331
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +289 -449
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +547 -867
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +406 -723
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +19 -29
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +28 -31
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +76 -139
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +55 -96
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +190 -303
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +126 -185
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +56 -77
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +20 -25
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +14 -37
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +411 -649
  410. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
  411. data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
  412. data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
  413. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
  414. data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
  415. data/dist/ice/cpp/src/Slice/FileTracker.cpp +25 -75
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +35 -56
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +2711 -3382
  418. data/dist/ice/cpp/src/Slice/Grammar.h +95 -75
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +117 -217
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +486 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +3068 -5223
  423. data/dist/ice/cpp/src/Slice/Parser.h +1086 -1065
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +97 -599
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +26 -42
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +1562 -924
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +517 -113
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +254 -269
  429. data/dist/ice/cpp/src/Slice/Util.h +126 -35
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +13 -15
  431. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
  432. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
  433. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
  434. data/dist/ice/slice/Glacier2/Metrics.ice +34 -75
  435. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +42 -98
  436. data/dist/ice/slice/Glacier2/Router.ice +80 -173
  437. data/dist/ice/slice/Glacier2/SSLInfo.ice +23 -40
  438. data/dist/ice/slice/Glacier2/Session.ice +120 -261
  439. data/dist/ice/slice/Ice/BuiltinSequences.ice +33 -38
  440. data/dist/ice/slice/Ice/Context.ice +24 -0
  441. data/dist/ice/slice/Ice/EndpointTypes.ice +35 -33
  442. data/dist/ice/slice/Ice/Identity.ice +24 -63
  443. data/dist/ice/slice/Ice/Locator.ice +61 -226
  444. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  445. data/dist/ice/slice/Ice/Metrics.ice +189 -424
  446. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  447. data/dist/ice/slice/Ice/Process.ice +16 -52
  448. data/dist/ice/slice/Ice/PropertiesAdmin.ice +25 -75
  449. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  450. data/dist/ice/slice/Ice/RemoteLogger.ice +113 -213
  451. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  452. data/dist/ice/slice/Ice/Router.ice +42 -91
  453. data/dist/ice/slice/Ice/SliceChecksumDict.ice +7 -25
  454. data/dist/ice/slice/Ice/Version.ice +31 -39
  455. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  456. data/dist/ice/slice/IceGrid/Admin.ice +942 -1918
  457. data/dist/ice/slice/IceGrid/Descriptor.ice +476 -1051
  458. data/dist/ice/slice/IceGrid/Exception.ice +86 -384
  459. data/dist/ice/slice/IceGrid/FileParser.ice +23 -59
  460. data/dist/ice/slice/IceGrid/Registry.ice +117 -256
  461. data/dist/ice/slice/IceGrid/Session.ice +46 -110
  462. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +22 -57
  463. data/dist/ice/slice/IceStorm/IceStorm.ice +173 -401
  464. data/dist/ice/slice/IceStorm/Metrics.ice +28 -70
  465. data/dist/lib/Glacier2/Metrics.rb +16 -31
  466. data/dist/lib/Glacier2/PermissionsVerifier.rb +18 -50
  467. data/dist/lib/Glacier2/Router.rb +20 -42
  468. data/dist/lib/Glacier2/SSLInfo.rb +14 -22
  469. data/dist/lib/Glacier2/Session.rb +53 -113
  470. data/dist/lib/Glacier2.rb +6 -6
  471. data/dist/lib/Ice/BuiltinSequences.rb +14 -26
  472. data/dist/lib/Ice/CompressBatch.rb +50 -0
  473. data/dist/lib/Ice/Context.rb +12 -0
  474. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  475. data/dist/lib/Ice/EndpointTypes.rb +14 -55
  476. data/dist/lib/Ice/Exception.rb +20 -0
  477. data/dist/lib/Ice/Identity.rb +10 -26
  478. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  479. data/dist/lib/Ice/InitializationData.rb +12 -0
  480. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  481. data/dist/lib/Ice/Locator.rb +21 -134
  482. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  483. data/dist/lib/Ice/Metrics.rb +85 -132
  484. data/dist/lib/Ice/OperationMode.rb +58 -0
  485. data/dist/lib/Ice/Process.rb +12 -31
  486. data/dist/lib/Ice/PropertiesAdmin.rb +12 -36
  487. data/dist/lib/Ice/PropertyDict.rb +12 -0
  488. data/dist/lib/Ice/Proxy.rb +85 -0
  489. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  490. data/dist/lib/Ice/RemoteLogger.rb +29 -60
  491. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  492. data/dist/lib/Ice/Router.rb +19 -47
  493. data/dist/lib/Ice/SliceChecksumDict.rb +5 -17
  494. data/dist/lib/Ice/SliceUtil.rb +41 -0
  495. data/dist/lib/Ice/Struct.rb +11 -0
  496. data/dist/lib/Ice/ToStringMode.rb +50 -0
  497. data/dist/lib/Ice/Value.rb +93 -0
  498. data/dist/lib/Ice/Version.rb +12 -24
  499. data/dist/lib/Ice.rb +29 -665
  500. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  501. data/dist/lib/IceBox.rb +2 -4
  502. data/dist/lib/IceGrid/Admin.rb +303 -291
  503. data/dist/lib/IceGrid/Descriptor.rb +147 -192
  504. data/dist/lib/IceGrid/Exception.rb +26 -257
  505. data/dist/lib/IceGrid/FileParser.rb +12 -36
  506. data/dist/lib/IceGrid/Registry.rb +35 -76
  507. data/dist/lib/IceGrid/Session.rb +19 -34
  508. data/dist/lib/IceGrid/UserAccountMapper.rb +11 -34
  509. data/dist/lib/IceGrid.rb +3 -3
  510. data/dist/lib/IceStorm/IceStorm.rb +51 -132
  511. data/dist/lib/IceStorm/Metrics.rb +19 -37
  512. data/dist/lib/IceStorm.rb +3 -5
  513. data/extconf.rb +6 -8
  514. data/ice.gemspec +3 -3
  515. data/scripts/slice2rb +1 -3
  516. metadata +206 -386
  517. data/dist/IceRuby/ValueFactoryManager.cpp +0 -445
  518. data/dist/IceRuby/ValueFactoryManager.h +0 -95
  519. data/dist/ice/cpp/include/Ice/Application.h +0 -326
  520. data/dist/ice/cpp/include/Ice/AsyncResult.h +0 -155
  521. data/dist/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  522. data/dist/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  523. data/dist/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  524. data/dist/ice/cpp/include/Ice/Comparable.h +0 -205
  525. data/dist/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  526. data/dist/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  527. data/dist/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  528. data/dist/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  529. data/dist/ice/cpp/include/Ice/Dispatcher.h +0 -67
  530. data/dist/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  531. data/dist/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  532. data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  533. data/dist/ice/cpp/include/Ice/FactoryTable.h +0 -73
  534. data/dist/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  535. data/dist/ice/cpp/include/Ice/Functional.h +0 -140
  536. data/dist/ice/cpp/include/Ice/GCObject.h +0 -76
  537. data/dist/ice/cpp/include/Ice/Handle.h +0 -182
  538. data/dist/ice/cpp/include/Ice/Incoming.h +0 -225
  539. data/dist/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  540. data/dist/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  541. data/dist/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  542. data/dist/ice/cpp/include/Ice/LocalObject.h +0 -35
  543. data/dist/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  544. data/dist/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  545. data/dist/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  546. data/dist/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  547. data/dist/ice/cpp/include/Ice/Optional.h +0 -1114
  548. data/dist/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  549. data/dist/ice/cpp/include/Ice/Protocol.h +0 -274
  550. data/dist/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  551. data/dist/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  552. data/dist/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  553. data/dist/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  554. data/dist/ice/cpp/include/Ice/SHA1.h +0 -40
  555. data/dist/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  556. data/dist/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  557. data/dist/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  558. data/dist/ice/cpp/include/Ice/UniquePtr.h +0 -95
  559. data/dist/ice/cpp/include/Ice/UniqueRef.h +0 -97
  560. data/dist/ice/cpp/include/IceSSL/Config.h +0 -21
  561. data/dist/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  562. data/dist/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  563. data/dist/ice/cpp/include/IceSSL/Plugin.h +0 -712
  564. data/dist/ice/cpp/include/IceSSL/SChannel.h +0 -72
  565. data/dist/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  566. data/dist/ice/cpp/include/IceUtil/Atomic.h +0 -179
  567. data/dist/ice/cpp/include/IceUtil/Cond.h +0 -317
  568. data/dist/ice/cpp/include/IceUtil/Config.h +0 -392
  569. data/dist/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  570. data/dist/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  571. data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -96
  572. data/dist/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  573. data/dist/ice/cpp/include/IceUtil/Exception.h +0 -394
  574. data/dist/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  575. data/dist/ice/cpp/include/IceUtil/Functional.h +0 -389
  576. data/dist/ice/cpp/include/IceUtil/Handle.h +0 -261
  577. data/dist/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  578. data/dist/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  579. data/dist/ice/cpp/include/IceUtil/Iterator.h +0 -31
  580. data/dist/ice/cpp/include/IceUtil/Lock.h +0 -128
  581. data/dist/ice/cpp/include/IceUtil/Monitor.h +0 -243
  582. data/dist/ice/cpp/include/IceUtil/Mutex.h +0 -349
  583. data/dist/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  584. data/dist/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  585. data/dist/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  586. data/dist/ice/cpp/include/IceUtil/Optional.h +0 -433
  587. data/dist/ice/cpp/include/IceUtil/Options.h +0 -135
  588. data/dist/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  589. data/dist/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  590. data/dist/ice/cpp/include/IceUtil/Random.h +0 -55
  591. data/dist/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  592. data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  593. data/dist/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  594. data/dist/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  595. data/dist/ice/cpp/include/IceUtil/Shared.h +0 -127
  596. data/dist/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  597. data/dist/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  598. data/dist/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  599. data/dist/ice/cpp/include/IceUtil/Thread.h +0 -160
  600. data/dist/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  601. data/dist/ice/cpp/include/IceUtil/Time.h +0 -205
  602. data/dist/ice/cpp/include/IceUtil/Timer.h +0 -153
  603. data/dist/ice/cpp/include/IceUtil/UUID.h +0 -21
  604. data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +0 -475
  605. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +0 -1430
  606. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +0 -147
  607. data/dist/ice/cpp/include/generated/Glacier2/Router.h +0 -3260
  608. data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +0 -125
  609. data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +0 -223
  610. data/dist/ice/cpp/include/generated/Glacier2/Session.h +0 -5894
  611. data/dist/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  612. data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  613. data/dist/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  614. data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  615. data/dist/ice/cpp/include/generated/Ice/Current.h +0 -322
  616. data/dist/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  617. data/dist/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  618. data/dist/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  619. data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  620. data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  621. data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  622. data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  623. data/dist/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  624. data/dist/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  625. data/dist/ice/cpp/include/generated/Ice/Logger.h +0 -237
  626. data/dist/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  627. data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  628. data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  629. data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  630. data/dist/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  631. data/dist/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  632. data/dist/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  633. data/dist/ice/cpp/include/generated/Ice/Properties.h +0 -452
  634. data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  635. data/dist/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  636. data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  637. data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  638. data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  639. data/dist/ice/cpp/include/generated/IceBox/IceBox.h +0 -3269
  640. data/dist/ice/cpp/include/generated/IceGrid/Admin.h +0 -33773
  641. data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +0 -5254
  642. data/dist/ice/cpp/include/generated/IceGrid/Exception.h +0 -2834
  643. data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +0 -824
  644. data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +0 -635
  645. data/dist/ice/cpp/include/generated/IceGrid/Registry.h +0 -5089
  646. data/dist/ice/cpp/include/generated/IceGrid/Session.h +0 -2240
  647. data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +0 -800
  648. data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +0 -325
  649. data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +0 -2891
  650. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  651. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  652. data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  653. data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +0 -6627
  654. data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +0 -665
  655. data/dist/ice/cpp/src/Ice/ACM.cpp +0 -380
  656. data/dist/ice/cpp/src/Ice/ACM.h +0 -119
  657. data/dist/ice/cpp/src/Ice/ACMF.h +0 -30
  658. data/dist/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  659. data/dist/ice/cpp/src/Ice/Application.cpp +0 -661
  660. data/dist/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  661. data/dist/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  662. data/dist/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  663. data/dist/ice/cpp/src/Ice/Cond.cpp +0 -381
  664. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  665. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  666. data/dist/ice/cpp/src/Ice/Connector.cpp +0 -16
  667. data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  668. data/dist/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  669. data/dist/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  670. data/dist/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  671. data/dist/ice/cpp/src/Ice/GCObject.cpp +0 -442
  672. data/dist/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  673. data/dist/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  674. data/dist/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  675. data/dist/ice/cpp/src/Ice/Incoming.cpp +0 -795
  676. data/dist/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  677. data/dist/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  678. data/dist/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  679. data/dist/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  680. data/dist/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  681. data/dist/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  682. data/dist/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  683. data/dist/ice/cpp/src/Ice/PropertiesI.h +0 -70
  684. data/dist/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  685. data/dist/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  686. data/dist/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  687. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  688. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  689. data/dist/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  690. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  691. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  692. data/dist/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  693. data/dist/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  694. data/dist/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  695. data/dist/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  696. data/dist/ice/cpp/src/Ice/StringUtil.h +0 -30
  697. data/dist/ice/cpp/src/Ice/Thread.cpp +0 -569
  698. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  699. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  700. data/dist/ice/cpp/src/Ice/VirtualShared.h +0 -38
  701. data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +0 -79
  702. data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +0 -61
  703. data/dist/ice/cpp/src/Ice/generated/Connection.cpp +0 -155
  704. data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +0 -61
  705. data/dist/ice/cpp/src/Ice/generated/Current.cpp +0 -62
  706. data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +0 -147
  707. data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +0 -61
  708. data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +0 -49
  709. data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +0 -75
  710. data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +0 -61
  711. data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +0 -188
  712. data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +0 -66
  713. data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +0 -3262
  714. data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +0 -63
  715. data/dist/ice/cpp/src/Ice/generated/Logger.cpp +0 -73
  716. data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +0 -61
  717. data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +0 -79
  718. data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +0 -61
  719. data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +0 -75
  720. data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +0 -87
  721. data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +0 -61
  722. data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +0 -63
  723. data/dist/ice/cpp/src/Ice/generated/Properties.cpp +0 -78
  724. data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +0 -63
  725. data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +0 -63
  726. data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +0 -75
  727. data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +0 -61
  728. data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +0 -83
  729. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +0 -154
  730. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +0 -49
  731. data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +0 -146
  732. data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +0 -52
  733. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +0 -477
  734. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +0 -156
  735. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +0 -570
  736. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +0 -93
  737. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +0 -1889
  738. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +0 -915
  739. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  740. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +0 -730
  741. data/dist/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  742. data/dist/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  743. data/dist/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  744. data/dist/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  745. data/dist/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  746. data/dist/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  747. data/dist/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  748. data/dist/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  749. data/dist/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  750. data/dist/ice/cpp/src/IceSSL/Instance.h +0 -37
  751. data/dist/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  752. data/dist/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  753. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  754. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  755. data/dist/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  756. data/dist/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  757. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  758. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  759. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  760. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  761. data/dist/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  762. data/dist/ice/cpp/src/IceSSL/PluginI.h +0 -67
  763. data/dist/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  764. data/dist/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  765. data/dist/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  766. data/dist/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  767. data/dist/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  768. data/dist/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  769. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  770. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  771. data/dist/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  772. data/dist/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  773. data/dist/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  774. data/dist/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  775. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  776. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  777. data/dist/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  778. data/dist/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  779. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  780. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  781. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  782. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  783. data/dist/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  784. data/dist/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  785. data/dist/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  786. data/dist/ice/cpp/src/IceSSL/Util.cpp +0 -192
  787. data/dist/ice/cpp/src/IceSSL/Util.h +0 -99
  788. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +0 -75
  789. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +0 -61
  790. data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +0 -75
  791. data/dist/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  792. data/dist/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  793. data/dist/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  794. data/dist/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  795. data/dist/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  796. data/dist/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  797. data/dist/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  798. data/dist/ice/cpp/src/IceUtil/Random.cpp +0 -180
  799. data/dist/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  800. data/dist/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  801. data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  802. data/dist/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  803. data/dist/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  804. data/dist/ice/cpp/src/IceUtil/Time.cpp +0 -307
  805. data/dist/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  806. data/dist/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  807. data/dist/ice/cpp/src/IceUtil/Unicode.h +0 -43
  808. data/dist/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  809. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  810. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  811. data/dist/ice/cpp/src/Slice/Checksum.cpp +0 -447
  812. data/dist/ice/cpp/src/Slice/Checksum.h +0 -21
  813. data/dist/ice/cpp/src/Slice/JavaUtil.cpp +0 -5183
  814. data/dist/ice/cpp/src/Slice/JavaUtil.h +0 -407
  815. data/dist/ice/cpp/src/Slice/MD5.cpp +0 -52
  816. data/dist/ice/cpp/src/Slice/MD5.h +0 -39
  817. data/dist/ice/cpp/src/Slice/MD5I.cpp +0 -393
  818. data/dist/ice/cpp/src/Slice/MD5I.h +0 -91
  819. data/dist/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  820. data/dist/ice/cpp/src/Slice/PHPUtil.h +0 -36
  821. data/dist/ice/cpp/src/Slice/Python.cpp +0 -830
  822. data/dist/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  823. data/dist/ice/cpp/src/Slice/PythonUtil.h +0 -70
  824. data/dist/ice/cpp/src/Slice/Ruby.cpp +0 -350
  825. data/dist/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  826. data/dist/ice/cpp/src/Slice/RubyUtil.h +0 -49
  827. data/dist/ice/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  828. data/dist/ice/slice/Glacier2/RouterF.ice +0 -29
  829. data/dist/ice/slice/Ice/Communicator.ice +0 -676
  830. data/dist/ice/slice/Ice/CommunicatorF.ice +0 -31
  831. data/dist/ice/slice/Ice/Connection.ice +0 -516
  832. data/dist/ice/slice/Ice/ConnectionF.ice +0 -33
  833. data/dist/ice/slice/Ice/Current.ice +0 -170
  834. data/dist/ice/slice/Ice/Endpoint.ice +0 -291
  835. data/dist/ice/slice/Ice/EndpointF.ice +0 -43
  836. data/dist/ice/slice/Ice/FacetMap.ice +0 -36
  837. data/dist/ice/slice/Ice/ImplicitContext.ice +0 -119
  838. data/dist/ice/slice/Ice/ImplicitContextF.ice +0 -30
  839. data/dist/ice/slice/Ice/Instrumentation.ice +0 -509
  840. data/dist/ice/slice/Ice/InstrumentationF.ice +0 -38
  841. data/dist/ice/slice/Ice/LocalException.ice +0 -1040
  842. data/dist/ice/slice/Ice/LocatorF.ice +0 -32
  843. data/dist/ice/slice/Ice/Logger.ice +0 -99
  844. data/dist/ice/slice/Ice/LoggerF.ice +0 -31
  845. data/dist/ice/slice/Ice/ObjectAdapter.ice +0 -710
  846. data/dist/ice/slice/Ice/ObjectAdapterF.ice +0 -31
  847. data/dist/ice/slice/Ice/ObjectFactory.ice +0 -71
  848. data/dist/ice/slice/Ice/Plugin.ice +0 -131
  849. data/dist/ice/slice/Ice/PluginF.ice +0 -36
  850. data/dist/ice/slice/Ice/ProcessF.ice +0 -31
  851. data/dist/ice/slice/Ice/Properties.ice +0 -244
  852. data/dist/ice/slice/Ice/PropertiesF.ice +0 -32
  853. data/dist/ice/slice/Ice/RouterF.ice +0 -31
  854. data/dist/ice/slice/Ice/ServantLocator.ice +0 -136
  855. data/dist/ice/slice/Ice/ServantLocatorF.ice +0 -31
  856. data/dist/ice/slice/Ice/ValueFactory.ice +0 -133
  857. data/dist/ice/slice/IceBox/IceBox.ice +0 -216
  858. data/dist/ice/slice/IceGrid/PluginFacade.ice +0 -329
  859. data/dist/ice/slice/IcePatch2/FileInfo.ice +0 -85
  860. data/dist/ice/slice/IcePatch2/FileServer.ice +0 -191
  861. data/dist/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  862. data/dist/lib/Glacier2/RouterF.rb +0 -25
  863. data/dist/lib/Ice/Communicator.rb +0 -87
  864. data/dist/lib/Ice/CommunicatorF.rb +0 -24
  865. data/dist/lib/Ice/Connection.rb +0 -413
  866. data/dist/lib/Ice/ConnectionF.rb +0 -32
  867. data/dist/lib/Ice/Current.rb +0 -141
  868. data/dist/lib/Ice/Endpoint.rb +0 -187
  869. data/dist/lib/Ice/EndpointF.rb +0 -48
  870. data/dist/lib/Ice/FacetMap.rb +0 -24
  871. data/dist/lib/Ice/ImplicitContext.rb +0 -26
  872. data/dist/lib/Ice/ImplicitContextF.rb +0 -24
  873. data/dist/lib/Ice/Instrumentation.rb +0 -169
  874. data/dist/lib/Ice/InstrumentationF.rb +0 -31
  875. data/dist/lib/Ice/LocalException.rb +0 -1031
  876. data/dist/lib/Ice/LocatorF.rb +0 -30
  877. data/dist/lib/Ice/Logger.rb +0 -24
  878. data/dist/lib/Ice/LoggerF.rb +0 -24
  879. data/dist/lib/Ice/ObjectAdapter.rb +0 -29
  880. data/dist/lib/Ice/ObjectAdapterF.rb +0 -24
  881. data/dist/lib/Ice/ObjectFactory.rb +0 -24
  882. data/dist/lib/Ice/Plugin.rb +0 -30
  883. data/dist/lib/Ice/PluginF.rb +0 -28
  884. data/dist/lib/Ice/ProcessF.rb +0 -25
  885. data/dist/lib/Ice/Properties.rb +0 -25
  886. data/dist/lib/Ice/PropertiesF.rb +0 -29
  887. data/dist/lib/Ice/RouterF.rb +0 -25
  888. data/dist/lib/Ice/ServantLocator.rb +0 -26
  889. data/dist/lib/Ice/ServantLocatorF.rb +0 -24
  890. data/dist/lib/Ice/ValueFactory.rb +0 -28
  891. data/dist/lib/IceBox/IceBox.rb +0 -164
  892. data/dist/lib/IceGrid/PluginFacade.rb +0 -35
  893. data/dist/lib/IcePatch2/FileInfo.rb +0 -115
  894. data/dist/lib/IcePatch2/FileServer.rb +0 -123
  895. data/dist/lib/IcePatch2.rb +0 -5
@@ -1,1147 +0,0 @@
1
- //
2
- // Copyright (c) ZeroC, Inc. All rights reserved.
3
- //
4
-
5
- #include <IceSSL/Config.h>
6
-
7
- #include <IceSSL/OpenSSLEngineF.h>
8
- #include <IceSSL/OpenSSLEngine.h>
9
- #include <IceSSL/OpenSSLTransceiverI.h>
10
- #include <IceSSL/Util.h>
11
- #include <IceSSL/TrustManager.h>
12
-
13
- #include <Ice/Communicator.h>
14
- #include <Ice/LocalException.h>
15
- #include <Ice/Logger.h>
16
- #include <Ice/LoggerUtil.h>
17
- #include <Ice/Properties.h>
18
-
19
- #include <IceUtil/StringUtil.h>
20
- #include <IceUtil/Mutex.h>
21
- #include <IceUtil/MutexPtrLock.h>
22
- #include <IceUtil/FileUtil.h>
23
-
24
- #include <openssl/rand.h>
25
- #include <openssl/err.h>
26
- #include <openssl/ssl.h>
27
- #include <openssl/pkcs12.h>
28
-
29
- #ifdef _MSC_VER
30
- # pragma warning(disable:4127) // conditional expression is constant
31
- #elif defined(__GNUC__)
32
- # // Ignore OpenSSL 3.0 deprecation warning
33
- # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
34
- #endif
35
-
36
- using namespace std;
37
- using namespace Ice;
38
- using namespace IceSSL;
39
-
40
- namespace
41
- {
42
-
43
- IceUtil::Mutex* staticMutex = 0;
44
- int instanceCount = 0;
45
- bool initOpenSSL = false;
46
-
47
- #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
48
- IceUtil::Mutex* locks = 0;
49
- #endif
50
-
51
- }
52
- extern "C"
53
- {
54
-
55
- //
56
- // OpenSSL 1.1.0 introduces a new thread API and removes
57
- // the need to use a custom thread callback.
58
- //
59
- #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
60
- //
61
- // OpenSSL mutex callback.
62
- //
63
- void
64
- IceSSL_opensslLockCallback(int mode, int n, const char* /*file*/, int /*line*/)
65
- {
66
- assert(locks);
67
- if(mode & CRYPTO_LOCK)
68
- {
69
- locks[n].lock();
70
- }
71
- else
72
- {
73
- locks[n].unlock();
74
- }
75
- }
76
-
77
- //
78
- // OpenSSL thread id callback.
79
- //
80
- unsigned long
81
- IceSSL_opensslThreadIdCallback()
82
- {
83
- # if defined(_WIN32)
84
- return static_cast<unsigned long>(GetCurrentThreadId());
85
- # elif defined(__FreeBSD__) || defined(__APPLE__) || defined(__osf1__)
86
- //
87
- // On some platforms, pthread_t is a pointer to a per-thread structure.
88
- //
89
- return reinterpret_cast<unsigned long>(pthread_self());
90
- # elif defined(__linux__) || defined(__sun) || defined(__hpux) || defined(_AIX) || defined(__GLIBC__)
91
- //
92
- // On Linux, Solaris, HP-UX and AIX, pthread_t is an integer.
93
- //
94
- return static_cast<unsigned long>(pthread_self());
95
- # else
96
- # error "Unknown platform"
97
- # endif
98
- }
99
-
100
- #endif
101
-
102
- int
103
- IceSSL_opensslPasswordCallback(char* buf, int size, int flag, void* userData)
104
- {
105
- OpenSSL::SSLEngine* p = reinterpret_cast<OpenSSL::SSLEngine*>(userData);
106
- assert(p);
107
- string passwd = p->password(flag == 1);
108
- int sz = static_cast<int>(passwd.size());
109
- if(sz > size)
110
- {
111
- sz = size - 1;
112
- }
113
- #if defined(_WIN32)
114
- strncpy_s(buf, size, passwd.c_str(), sz);
115
- #else
116
- strncpy(buf, passwd.c_str(), sz);
117
- #endif
118
- buf[sz] = '\0';
119
-
120
- for(string::iterator i = passwd.begin(); i != passwd.end(); ++i)
121
- {
122
- *i = '\0';
123
- }
124
-
125
- return sz;
126
- }
127
-
128
- #ifndef OPENSSL_NO_DH
129
- DH*
130
- IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength)
131
- {
132
- # if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
133
- SSL_CTX* ctx = SSL_get_SSL_CTX(ssl);
134
- # else
135
- SSL_CTX* ctx = ssl->ctx;
136
- # endif
137
- OpenSSL::SSLEngine* p = reinterpret_cast<OpenSSL::SSLEngine*>(SSL_CTX_get_ex_data(ctx, 0));
138
- return p->dhParams(keyLength);
139
- }
140
- #endif
141
-
142
- }
143
-
144
- namespace
145
- {
146
-
147
- class Init
148
- {
149
- public:
150
-
151
- Init()
152
- {
153
- staticMutex = new IceUtil::Mutex;
154
- }
155
-
156
- ~Init()
157
- {
158
- //
159
- // OpenSSL 1.1.0 introduces a new thread API and removes
160
- // the need to use a custom thread callback.
161
- //
162
- #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
163
- if(CRYPTO_get_locking_callback() == IceSSL_opensslLockCallback)
164
- {
165
- assert(locks);
166
- CRYPTO_set_locking_callback(0);
167
- delete[] locks;
168
- locks = 0;
169
- }
170
-
171
- if(CRYPTO_get_id_callback() == IceSSL_opensslThreadIdCallback)
172
- {
173
- CRYPTO_set_id_callback(0);
174
- }
175
- #endif
176
- delete staticMutex;
177
- staticMutex = 0;
178
- }
179
- };
180
-
181
- Init init;
182
-
183
- bool
184
- passwordError()
185
- {
186
- int reason = ERR_GET_REASON(ERR_peek_error());
187
- return (reason == PEM_R_BAD_BASE64_DECODE ||
188
- reason == PEM_R_BAD_DECRYPT ||
189
- reason == PEM_R_BAD_PASSWORD_READ ||
190
- reason == PEM_R_PROBLEMS_GETTING_PASSWORD ||
191
- reason == PKCS12_R_MAC_VERIFY_FAILURE);
192
- }
193
-
194
- }
195
-
196
- IceUtil::Shared*
197
- OpenSSL::upCast(OpenSSL::SSLEngine* p)
198
- {
199
- return p;
200
- }
201
-
202
- OpenSSL::SSLEngine::SSLEngine(const CommunicatorPtr& communicator) :
203
- IceSSL::SSLEngine(communicator),
204
- _ctx(0)
205
- {
206
- //
207
- // Initialize OpenSSL if necessary.
208
- //
209
- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(staticMutex);
210
- instanceCount++;
211
-
212
- if(instanceCount == 1)
213
- {
214
- PropertiesPtr properties = communicator->getProperties();
215
-
216
- //
217
- // The IceSSL.InitOpenSSL property specifies whether we should perform the global
218
- // startup (and shutdown) tasks for the OpenSSL library.
219
- //
220
- // If an application uses multiple components that each depend on OpenSSL, the
221
- // application should disable OpenSSL initialization in those components and
222
- // perform the initialization itself.
223
- //
224
- initOpenSSL = properties->getPropertyAsIntWithDefault("IceSSL.InitOpenSSL", 1) > 0;
225
- if(initOpenSSL)
226
- {
227
-
228
- //
229
- // OpenSSL 1.1.0 remove the need for library initialization and cleanup.
230
- //
231
- #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
232
- if(!CRYPTO_get_id_callback())
233
- {
234
- CRYPTO_set_id_callback(IceSSL_opensslThreadIdCallback);
235
- }
236
-
237
- //
238
- // Create the mutexes and set the callbacks.
239
- //
240
- if(!CRYPTO_get_locking_callback())
241
- {
242
- assert(!locks);
243
- locks = new IceUtil::Mutex[CRYPTO_num_locks()];
244
- CRYPTO_set_locking_callback(IceSSL_opensslLockCallback);
245
- }
246
-
247
- //
248
- // Load human-readable error messages.
249
- //
250
- SSL_load_error_strings();
251
-
252
- //
253
- // Initialize the SSL library.
254
- //
255
- SSL_library_init();
256
-
257
- //
258
- // This is necessary to allow programs that use OpenSSL 0.9.x to
259
- // load private key files generated by OpenSSL 1.x.
260
- //
261
- OpenSSL_add_all_algorithms();
262
- #endif
263
-
264
- //
265
- // Initialize the PRNG.
266
- //
267
- char randFile[1024];
268
- if(RAND_file_name(randFile, sizeof(randFile))) // Gets the name of a default seed file.
269
- {
270
- RAND_load_file(randFile, 1024);
271
- }
272
-
273
- string randFiles = properties->getProperty("IceSSL.Random");
274
-
275
- if(!randFiles.empty())
276
- {
277
- vector<string> files;
278
- const string defaultDir = properties->getProperty("IceSSL.DefaultDir");
279
-
280
- if(!IceUtilInternal::splitString(randFiles, IceUtilInternal::pathsep, files))
281
- {
282
- cleanup();
283
- throw PluginInitializationException(__FILE__, __LINE__,
284
- "IceSSL: invalid value for IceSSL.Random:\n" + randFiles);
285
- }
286
- for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
287
- {
288
- string file = *p;
289
- string resolved;
290
- if(!checkPath(file, defaultDir, false, resolved))
291
- {
292
- cleanup();
293
- throw PluginInitializationException(__FILE__, __LINE__,
294
- "IceSSL: entropy data file not found:\n" + file);
295
- }
296
- if(!RAND_load_file(resolved.c_str(), 1024))
297
- {
298
- cleanup();
299
- throw PluginInitializationException(__FILE__, __LINE__,
300
- "IceSSL: unable to load entropy data from " + resolved);
301
- }
302
- }
303
- }
304
- #if !defined (_WIN32) && !defined (OPENSSL_NO_EGD)
305
- //
306
- // The Entropy Gathering Daemon (EGD) is not available on Windows.
307
- // The file should be a Unix domain socket for the daemon.
308
- //
309
- string entropyDaemon = properties->getProperty("IceSSL.EntropyDaemon");
310
- if(!entropyDaemon.empty())
311
- {
312
- if(RAND_egd(entropyDaemon.c_str()) <= 0)
313
- {
314
- cleanup();
315
- throw PluginInitializationException(__FILE__, __LINE__,
316
- "IceSSL: EGD failure using file " + entropyDaemon);
317
- }
318
- }
319
- #endif
320
- if(!RAND_status())
321
- {
322
- getLogger()->warning("IceSSL: insufficient data to initialize PRNG");
323
- }
324
- }
325
- else
326
- {
327
- if(!properties->getProperty("IceSSL.Random").empty())
328
- {
329
- getLogger()->warning("IceSSL: ignoring IceSSL.Random because OpenSSL initialization is disabled");
330
- }
331
- #ifndef _WIN32
332
- else if(!properties->getProperty("IceSSL.EntropyDaemon").empty())
333
- {
334
- getLogger()->warning("IceSSL: ignoring IceSSL.EntropyDaemon because OpenSSL initialization is disabled");
335
- }
336
- #endif
337
- }
338
- }
339
- }
340
-
341
- void
342
- OpenSSL::SSLEngine::cleanup()
343
- {
344
- //
345
- // Must be called with the static mutex locked.
346
- //
347
- --instanceCount;
348
- //
349
- // OpenSSL 1.1.0 remove the need for library initialization and cleanup. We
350
- // still need to decrement instanceCount
351
- //
352
- #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
353
- //
354
- // Clean up OpenSSL resources.
355
- //
356
- if(instanceCount == 0 && initOpenSSL)
357
- {
358
- //
359
- // NOTE: We can't destroy the locks here: threads which might have called openssl methods
360
- // might access openssl locks upon termination (from DllMain/THREAD_DETACHED). Instead,
361
- // we release the locks in the ~Init() static destructor. See bug #4156.
362
- //
363
- //CRYPTO_set_locking_callback(0);
364
- //CRYPTO_set_id_callback(0);
365
- //delete[] locks;
366
- //locks = 0;
367
-
368
- CRYPTO_cleanup_all_ex_data();
369
- RAND_cleanup();
370
- ERR_free_strings();
371
- EVP_cleanup();
372
- }
373
- #endif
374
- }
375
-
376
- OpenSSL::SSLEngine::~SSLEngine()
377
- {
378
- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(staticMutex);
379
- cleanup();
380
- }
381
-
382
- void
383
- OpenSSL::SSLEngine::initialize()
384
- {
385
- IceUtil::Mutex::Lock lock(_mutex);
386
- if(_initialized)
387
- {
388
- return;
389
- }
390
-
391
- try
392
- {
393
- IceSSL::SSLEngine::initialize();
394
-
395
- const string propPrefix = "IceSSL.";
396
- PropertiesPtr properties = communicator()->getProperties();
397
-
398
- //
399
- // Protocols selects which protocols to enable, by default we only enable TLS1.0
400
- // TLS1.1 and TLS1.2 to avoid security issues with SSLv3
401
- //
402
- vector<string> defaultProtocols;
403
- #if defined(TLS1_VERSION) && !defined(OPENSSL_NO_TLS1_METHOD)
404
- defaultProtocols.push_back("tls1_0");
405
- #endif
406
-
407
- #if defined(TLS1_1_VERSION) && !defined(OPENSSL_NO_TLS1_1_METHOD)
408
- defaultProtocols.push_back("tls1_1");
409
- #endif
410
-
411
- #if defined(TLS1_2_VERSION) && !defined(OPENSSL_NO_TLS1_2_METHOD)
412
- defaultProtocols.push_back("tls1_2");
413
- #endif
414
-
415
- #if defined(TLS1_3_VERSION) && !defined(OPENSSL_NO_TLS1_3_METHOD)
416
- defaultProtocols.push_back("tls1_3");
417
- #endif
418
-
419
- const int protocols =
420
- parseProtocols(properties->getPropertyAsListWithDefault(propPrefix + "Protocols", defaultProtocols));
421
-
422
- //
423
- // Create an SSL context if the application hasn't supplied one.
424
- //
425
- if(!_ctx)
426
- {
427
- _ctx = SSL_CTX_new(getMethod(protocols));
428
- if(!_ctx)
429
- {
430
- throw PluginInitializationException(__FILE__, __LINE__,
431
- "IceSSL: unable to create SSL context:\n" + sslErrors());
432
- }
433
-
434
- #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
435
- int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1);
436
- if(securityLevel != -1)
437
- {
438
- SSL_CTX_set_security_level(_ctx, securityLevel);
439
- if(SSL_CTX_get_security_level(_ctx) != securityLevel)
440
- {
441
- throw PluginInitializationException(__FILE__, __LINE__,
442
- "IceSSL: unable to set SSL security level:\n" + sslErrors());
443
- }
444
- }
445
- #endif
446
- //
447
- // Check for a default directory. We look in this directory for
448
- // files mentioned in the configuration.
449
- //
450
- const string defaultDir = properties->getProperty(propPrefix + "DefaultDir");
451
-
452
- //
453
- // If the configuration defines a password, or the application has supplied
454
- // a password prompt object, then register a password callback. Otherwise,
455
- // let OpenSSL use its default behavior.
456
- //
457
- {
458
- // TODO: Support quoted value?
459
- string password = properties->getProperty(propPrefix + "Password");
460
- if(!password.empty() || getPasswordPrompt())
461
- {
462
- SSL_CTX_set_default_passwd_cb(_ctx, IceSSL_opensslPasswordCallback);
463
- SSL_CTX_set_default_passwd_cb_userdata(_ctx, this);
464
- setPassword(password);
465
- }
466
- }
467
-
468
- int passwordRetryMax = properties->getPropertyAsIntWithDefault(propPrefix + "PasswordRetryMax", 3);
469
-
470
- //
471
- // Establish the location of CA certificates.
472
- //
473
- {
474
- string path = properties->getProperty(propPrefix + "CAs");
475
- string resolved;
476
- const char* file = 0;
477
- const char* dir = 0;
478
- if(!path.empty())
479
- {
480
- if(checkPath(path, defaultDir, false, resolved))
481
- {
482
- path = resolved;
483
- file = path.c_str();
484
- }
485
-
486
- if(!file)
487
- {
488
- if(checkPath(path, defaultDir, true, resolved))
489
- {
490
- path = resolved;
491
- dir = path.c_str();
492
- }
493
- }
494
-
495
- if(!file && !dir)
496
- {
497
- throw PluginInitializationException(__FILE__, __LINE__,
498
- "IceSSL: CA certificate path not found:\n" + path);
499
- }
500
- }
501
-
502
- if(file || dir)
503
- {
504
- //
505
- // The certificate may be stored in an encrypted file, so handle
506
- // password retries.
507
- //
508
- int count = 0;
509
- int success = 0;
510
- while(count < passwordRetryMax)
511
- {
512
- ERR_clear_error();
513
- if((success = SSL_CTX_load_verify_locations(_ctx, file, dir)) != 0 || !passwordError())
514
- {
515
- break;
516
- }
517
- ++count;
518
- }
519
- if(!success)
520
- {
521
- string msg = "IceSSL: unable to establish CA certificates";
522
- if(passwordError())
523
- {
524
- msg += ":\ninvalid password";
525
- }
526
- else
527
- {
528
- string err = sslErrors();
529
- if(!err.empty())
530
- {
531
- msg += ":\n" + err;
532
- }
533
- }
534
- throw PluginInitializationException(__FILE__, __LINE__, msg);
535
- }
536
- }
537
- else if(properties->getPropertyAsInt("IceSSL.UsePlatformCAs") > 0)
538
- {
539
- SSL_CTX_set_default_verify_paths(_ctx);
540
- }
541
- }
542
-
543
- //
544
- // Establish the certificate chains and private keys. One RSA certificate and
545
- // one DSA certificate are allowed.
546
- //
547
- string certFile = properties->getProperty(propPrefix + "CertFile");
548
- string keyFile = properties->getProperty(propPrefix + "KeyFile");
549
- bool keyLoaded = false;
550
-
551
- vector<string>::size_type numCerts = 0;
552
- if(!certFile.empty())
553
- {
554
- vector<string> files;
555
- if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2)
556
- {
557
- throw PluginInitializationException(__FILE__, __LINE__,
558
- "IceSSL: invalid value for " + propPrefix + "CertFile:\n" +
559
- certFile);
560
- }
561
- numCerts = files.size();
562
- for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
563
- {
564
- string file = *p;
565
- string resolved;
566
- if(!checkPath(file, defaultDir, false, resolved))
567
- {
568
- throw PluginInitializationException(__FILE__, __LINE__,
569
- "IceSSL: certificate file not found:\n" + file);
570
- }
571
- file = resolved;
572
-
573
- //
574
- // First we try to load the certificate using PKCS12 format if that fails
575
- // we fallback to PEM format.
576
- //
577
- vector<char> buffer;
578
- readFile(file, buffer);
579
- int success = 0;
580
-
581
- const unsigned char* b = const_cast<const unsigned char*>(reinterpret_cast<unsigned char*>(&buffer[0]));
582
- PKCS12* p12 = d2i_PKCS12(0, &b, static_cast<long>(buffer.size()));
583
- if(p12)
584
- {
585
- EVP_PKEY* key = 0;
586
- X509* cert = 0;
587
- STACK_OF(X509)* chain = 0;
588
-
589
- int count = 0;
590
- try
591
- {
592
- while(count < passwordRetryMax)
593
- {
594
- ERR_clear_error();
595
- //
596
- // chain may have a bogus value from a previous call to PKCS12_parse, so we
597
- // reset it prior to each call.
598
- //
599
- key = 0;
600
- cert = 0;
601
- chain = 0;
602
- if((success = PKCS12_parse(p12, password(false).c_str(), &key, &cert, &chain)) == 0)
603
- {
604
- if(passwordError())
605
- {
606
- count++;
607
- continue;
608
- }
609
- break;
610
- }
611
-
612
- if(!cert || !SSL_CTX_use_certificate(_ctx, cert))
613
- {
614
- throw PluginInitializationException(__FILE__, __LINE__,
615
- "IceSSL: unable to load SSL certificate:\n" +
616
- (cert ? sslErrors() : "certificate not found"));
617
- }
618
-
619
- if(!key || !SSL_CTX_use_PrivateKey(_ctx, key))
620
- {
621
- throw PluginInitializationException(__FILE__, __LINE__,
622
- "IceSSL: unable to load SSL private key:\n" +
623
- (key ? sslErrors() : "key not found"));
624
- }
625
- keyLoaded = true;
626
-
627
- if(chain && sk_X509_num(chain))
628
- {
629
- // Pop each cert from the stack so we can free the stack later.
630
- // The CTX destruction will take care of the certificates
631
- X509 *c = 0;
632
- while((c = sk_X509_pop(chain)) != 0)
633
- {
634
- if(!SSL_CTX_add_extra_chain_cert(_ctx, c))
635
- {
636
- throw PluginInitializationException(__FILE__, __LINE__,
637
- "IceSSL: unable to add extra SSL certificate:\n" + sslErrors());
638
- }
639
- }
640
- }
641
-
642
- if(chain)
643
- {
644
- // This chain should now be empty. No need to call sk_X509_pop_free()
645
- sk_X509_free(chain);
646
- }
647
- assert(key && cert);
648
- EVP_PKEY_free(key);
649
- X509_free(cert);
650
- break;
651
- }
652
- PKCS12_free(p12);
653
- }
654
- catch(...)
655
- {
656
- PKCS12_free(p12);
657
- if(chain)
658
- {
659
- sk_X509_pop_free(chain, X509_free);
660
- }
661
-
662
- if(key)
663
- {
664
- EVP_PKEY_free(key);
665
- }
666
-
667
- if(cert)
668
- {
669
- X509_free(cert);
670
- }
671
- throw;
672
- }
673
- }
674
- else
675
- {
676
- //
677
- // The certificate may be stored in an encrypted file, so handle
678
- // password retries.
679
- //
680
- int count = 0;
681
- while(count < passwordRetryMax)
682
- {
683
- ERR_clear_error();
684
- if((success = SSL_CTX_use_certificate_chain_file(_ctx, file.c_str())) == 0)
685
- {
686
- if(passwordError())
687
- {
688
- count++;
689
- continue;
690
- }
691
- }
692
- count++;
693
- }
694
- }
695
-
696
- if(!success)
697
- {
698
- string msg = "IceSSL: unable to load certificate chain from file " + file;
699
- if(passwordError())
700
- {
701
- msg += ":\ninvalid password";
702
- }
703
- else
704
- {
705
- string err = sslErrors();
706
- if(!err.empty())
707
- {
708
- msg += ":\n" + err;
709
- }
710
- }
711
- throw PluginInitializationException(__FILE__, __LINE__, msg);
712
- }
713
- }
714
- }
715
-
716
- if(keyFile.empty())
717
- {
718
- keyFile = certFile; // Assume the certificate file also contains the private key.
719
- }
720
- if(!keyLoaded && !keyFile.empty())
721
- {
722
- vector<string> files;
723
- if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, files) || files.size() > 2)
724
- {
725
- throw PluginInitializationException(__FILE__, __LINE__,
726
- "IceSSL: invalid value for " + propPrefix + "KeyFile:\n" + keyFile);
727
- }
728
- if(files.size() != numCerts)
729
- {
730
- throw PluginInitializationException(__FILE__, __LINE__,
731
- "IceSSL: " + propPrefix + "KeyFile does not agree with " + propPrefix + "CertFile");
732
- }
733
- for(vector<string>::iterator p = files.begin(); p != files.end(); ++p)
734
- {
735
- string file = *p;
736
- string resolved;
737
- if(!checkPath(file, defaultDir, false, resolved))
738
- {
739
- throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: key file not found:\n" + file);
740
- }
741
- file = resolved;
742
- //
743
- // The private key may be stored in an encrypted file, so handle password retries.
744
- //
745
- int count = 0;
746
- int err = 0;
747
- while(count < passwordRetryMax)
748
- {
749
- ERR_clear_error();
750
- err = SSL_CTX_use_PrivateKey_file(_ctx, file.c_str(), SSL_FILETYPE_PEM);
751
- if(err)
752
- {
753
- break;
754
- }
755
- ++count;
756
- }
757
- if(err == 0)
758
- {
759
- string msg = "IceSSL: unable to load private key from file " + file;
760
- if(passwordError())
761
- {
762
- msg += ":\ninvalid password";
763
- }
764
- else
765
- {
766
- string errStr = sslErrors();
767
- if(!errStr.empty())
768
- {
769
- msg += ":\n" + errStr;
770
- }
771
- }
772
- throw PluginInitializationException(__FILE__, __LINE__, msg);
773
- }
774
- }
775
- keyLoaded = true;
776
- }
777
-
778
- if(keyLoaded && !SSL_CTX_check_private_key(_ctx))
779
- {
780
- throw PluginInitializationException(__FILE__, __LINE__,
781
- "IceSSL: unable to validate private key(s):\n" + sslErrors());
782
- }
783
-
784
- //
785
- // Diffie Hellman configuration.
786
- //
787
- {
788
- #ifndef OPENSSL_NO_DH
789
- _dhParams = new DHParams;
790
- SSL_CTX_set_options(_ctx, SSL_OP_SINGLE_DH_USE);
791
- SSL_CTX_set_tmp_dh_callback(_ctx, IceSSL_opensslDHCallback);
792
- #endif
793
- //
794
- // Properties have the following form:
795
- //
796
- // ...DH.<keyLength>=file
797
- //
798
- const string dhPrefix = propPrefix + "DH.";
799
- PropertyDict d = properties->getPropertiesForPrefix(dhPrefix);
800
- if(!d.empty())
801
- {
802
- #ifdef OPENSSL_NO_DH
803
- getLogger()->warning("IceSSL: OpenSSL is not configured for Diffie Hellman");
804
- #else
805
- for(PropertyDict::iterator p = d.begin(); p != d.end(); ++p)
806
- {
807
- string s = p->first.substr(dhPrefix.size());
808
- int keyLength = atoi(s.c_str());
809
- if(keyLength > 0)
810
- {
811
- string file = p->second;
812
- string resolved;
813
- if(!checkPath(file, defaultDir, false, resolved))
814
- {
815
- throw PluginInitializationException(__FILE__, __LINE__,
816
- "IceSSL: DH parameter file not found:\n" + file);
817
- }
818
- file = resolved;
819
- if(!_dhParams->add(keyLength, file))
820
- {
821
- throw PluginInitializationException(__FILE__, __LINE__,
822
- "IceSSL: unable to read DH parameter file " + file);
823
- }
824
- }
825
- }
826
- #endif
827
- }
828
- }
829
-
830
- int revocationCheck = getRevocationCheck();
831
- if(revocationCheck > 0)
832
- {
833
- vector<string> crlFiles =
834
- properties->getPropertyAsList(propPrefix + "CertificateRevocationListFiles");
835
- if(crlFiles.empty())
836
- {
837
- throw PluginInitializationException(
838
- __FILE__,
839
- __LINE__,
840
- "IceSSL: cannot enable revocation checks without setting certificate revocation list files");
841
- }
842
-
843
- X509_STORE* store = SSL_CTX_get_cert_store(_ctx);
844
- if(!store)
845
- {
846
- throw PluginInitializationException(
847
- __FILE__,
848
- __LINE__,
849
- "IceSSL: unable to obtain the certificate store");
850
- }
851
-
852
- X509_LOOKUP* lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());
853
- if(!lookup)
854
- {
855
- throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: add lookup failed");
856
- }
857
-
858
- for(vector<string>::const_iterator it = crlFiles.begin(); it != crlFiles.end(); it++)
859
- {
860
- string file;
861
- if(!checkPath(*it, defaultDir, false, file))
862
- {
863
- throw PluginInitializationException(
864
- __FILE__,
865
- __LINE__,
866
- "IceSSL: CRL file not found `" + *it + "'");
867
- }
868
-
869
- if(X509_LOOKUP_load_file(lookup, file.c_str(), X509_FILETYPE_PEM) == 0)
870
- {
871
- throw PluginInitializationException(
872
- __FILE__,
873
- __LINE__,
874
- "IceSSL: CRL load failure `" + *it + "'");
875
- }
876
- }
877
-
878
- unsigned long flags = X509_V_FLAG_CRL_CHECK;
879
- if(revocationCheck > 1)
880
- {
881
- flags |= X509_V_FLAG_CRL_CHECK_ALL;
882
- }
883
- X509_STORE_set_flags(store, flags);
884
- }
885
-
886
- SSL_CTX_set_mode(_ctx, SSL_MODE_ENABLE_PARTIAL_WRITE);
887
- }
888
-
889
- //
890
- // Store a pointer to ourself for use in OpenSSL callbacks.
891
- //
892
- SSL_CTX_set_ex_data(_ctx, 0, this);
893
-
894
- //
895
- // This is necessary for successful interop with Java. Without it, a Java
896
- // client would fail to reestablish a connection: the server gets the
897
- // error "session id context uninitialized" and the client receives
898
- // "SSLHandshakeException: Remote host closed connection during handshake".
899
- //
900
- SSL_CTX_set_session_cache_mode(_ctx, SSL_SESS_CACHE_OFF);
901
-
902
- //
903
- // Although we disable session caching, we still need to set a session ID
904
- // context (ICE-5103). The value can be anything; here we just use the
905
- // pointer to this SharedInstance object.
906
- //
907
- SSL_CTX_set_session_id_context(_ctx, reinterpret_cast<unsigned char*>(this),
908
- static_cast<unsigned int>(sizeof(this)));
909
-
910
- //
911
- // Select protocols.
912
- //
913
- if(protocols != 0)
914
- {
915
- setOptions(protocols);
916
- }
917
-
918
- //
919
- // Establish the cipher list.
920
- //
921
- string ciphersStr = properties->getProperty(propPrefix + "Ciphers");
922
- if(!ciphersStr.empty())
923
- {
924
- if(!SSL_CTX_set_cipher_list(_ctx, ciphersStr.c_str()))
925
- {
926
- throw PluginInitializationException(__FILE__, __LINE__,
927
- "IceSSL: unable to set ciphers using `" + ciphersStr + "':\n" + sslErrors());
928
- }
929
- }
930
-
931
- if(securityTraceLevel() >= 1)
932
- {
933
- ostringstream os;
934
- os << "enabling SSL ciphersuites:";
935
-
936
- SSL* ssl = SSL_new(_ctx);
937
- STACK_OF(SSL_CIPHER)* ciphers = SSL_get_ciphers(ssl);
938
- if(ciphers)
939
- {
940
- for(int i = 0, length = sk_SSL_CIPHER_num(ciphers); i < length; ++i)
941
- {
942
- os << "\n" << SSL_CIPHER_get_name(sk_SSL_CIPHER_value(ciphers, i));
943
- }
944
- }
945
- SSL_free(ssl);
946
- getLogger()->trace(securityTraceCategory(), os.str());
947
- }
948
- }
949
- catch(...)
950
- {
951
- //
952
- // We free the SSL context regardless of whether the plugin created it
953
- // or the application supplied it.
954
- //
955
- SSL_CTX_free(_ctx);
956
- _ctx = 0;
957
- throw;
958
- }
959
-
960
- _initialized = true;
961
- }
962
-
963
- void
964
- OpenSSL::SSLEngine::context(SSL_CTX* context)
965
- {
966
- if(initialized())
967
- {
968
- throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: plug-in is already initialized");
969
- }
970
-
971
- assert(!_ctx);
972
- _ctx = context;
973
- }
974
-
975
- SSL_CTX*
976
- OpenSSL::SSLEngine::context() const
977
- {
978
- return _ctx;
979
- }
980
-
981
- string
982
- OpenSSL::SSLEngine::sslErrors() const
983
- {
984
- return getSslErrors(securityTraceLevel() >= 1);
985
- }
986
-
987
- void
988
- OpenSSL::SSLEngine::destroy()
989
- {
990
- if(_ctx)
991
- {
992
- SSL_CTX_free(_ctx);
993
- _ctx = 0;
994
- }
995
- }
996
-
997
- IceInternal::TransceiverPtr
998
- OpenSSL::SSLEngine::createTransceiver(const InstancePtr& instance,
999
- const IceInternal::TransceiverPtr& delegate,
1000
- const string& hostOrAdapterName,
1001
- bool incoming)
1002
- {
1003
- return new OpenSSL::TransceiverI(instance, delegate, hostOrAdapterName, incoming);
1004
- }
1005
-
1006
- #ifndef OPENSSL_NO_DH
1007
- DH*
1008
- OpenSSL::SSLEngine::dhParams(int keyLength)
1009
- {
1010
- return _dhParams->get(keyLength);
1011
- }
1012
- #endif
1013
-
1014
- int
1015
- OpenSSL::SSLEngine::parseProtocols(const StringSeq& protocols) const
1016
- {
1017
- int v = 0;
1018
-
1019
- for(Ice::StringSeq::const_iterator p = protocols.begin(); p != protocols.end(); ++p)
1020
- {
1021
- string prot = IceUtilInternal::toUpper(*p);
1022
- if(prot == "SSL3" || prot == "SSLV3")
1023
- {
1024
- #if defined(OPENSSL_NO_SSL3_METHOD) || !defined(SSL3_VERSION)
1025
- throw PluginInitializationException(__FILE__, __LINE__,
1026
- "IceSSL: OpenSSL was build without SSLv3 support");
1027
- #else
1028
- v |= SSLv3;
1029
- #endif
1030
- }
1031
- else if(prot == "TLS" || prot == "TLS1" || prot == "TLSV1" || prot == "TLS1_0" || prot == "TLSV1_0")
1032
- {
1033
- #if defined(OPENSSL_NO_TLS1_METHOD) || !defined(TLS1_VERSION)
1034
- throw PluginInitializationException(__FILE__, __LINE__,
1035
- "IceSSL: OpenSSL was build without TLS 1.0 support");
1036
- #else
1037
- v |= TLSv1_0;
1038
- #endif
1039
- }
1040
- else if(prot == "TLS1_1" || prot == "TLSV1_1")
1041
- {
1042
- #if defined(OPENSSL_NO_TLS1_1_METHOD) || !defined(TLS1_1_VERSION)
1043
- throw PluginInitializationException(__FILE__, __LINE__,
1044
- "IceSSL: OpenSSL was build without TLS 1.1 support");
1045
- #else
1046
- v |= TLSv1_1;
1047
- #endif
1048
- }
1049
- else if(prot == "TLS1_2" || prot == "TLSV1_2")
1050
- {
1051
- #if defined(OPENSSL_NO_TLS1_2_METHOD) || !defined(TLS1_2_VERSION)
1052
- throw PluginInitializationException(__FILE__, __LINE__,
1053
- "IceSSL: OpenSSL was build without TLS 1.2 support");
1054
- #else
1055
- v |= TLSv1_2;
1056
- #endif
1057
- }
1058
- else if(prot == "TLS1_3" || prot == "TLSV1_3")
1059
- {
1060
- #if defined(OPENSSL_NO_TLS1_3_METHOD) || !defined(TLS1_3_VERSION)
1061
- throw PluginInitializationException(__FILE__, __LINE__,
1062
- "IceSSL: OpenSSL was build without TLS 1.3 support");
1063
- #else
1064
- v |= TLSv1_3;
1065
- #endif
1066
- }
1067
- else
1068
- {
1069
- throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unrecognized protocol `" + *p + "'");
1070
- }
1071
- }
1072
-
1073
- return v;
1074
- }
1075
-
1076
- SSL_METHOD*
1077
- OpenSSL::SSLEngine::getMethod(int /*protocols*/)
1078
- {
1079
- #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
1080
- SSL_METHOD* meth = const_cast<SSL_METHOD*>(TLS_method());
1081
- #else
1082
- //
1083
- // Despite its name, the SSLv23 method can negotiate SSL3, TLS1.0, TLS1.1, and TLS1.2.
1084
- // We use the const_cast for backward compatibility with older OpenSSL releases.
1085
- //
1086
- SSL_METHOD* meth = const_cast<SSL_METHOD*>(SSLv23_method());
1087
-
1088
- /*
1089
- * Early versions of OpenSSL 1.0.1 would not negotiate a TLS1.2 connection using
1090
- * the SSLv23 method. You can enable the code below to override the method.
1091
- if(protocols & TLSv1_2)
1092
- {
1093
- meth = const_cast<SSL_METHOD*>(TLSv1_2_method());
1094
- }
1095
- */
1096
- #endif
1097
- return meth;
1098
- }
1099
-
1100
- void
1101
- OpenSSL::SSLEngine::setOptions(int protocols)
1102
- {
1103
- long opts = SSL_OP_NO_SSLv2; // SSLv2 is not supported.
1104
-
1105
- #ifdef SSL_OP_NO_SSLv3
1106
- if(!(protocols & SSLv3))
1107
- {
1108
- opts |= SSL_OP_NO_SSLv3;
1109
- }
1110
- #endif
1111
-
1112
- #ifdef SSL_OP_NO_TLSv1
1113
- if(!(protocols & TLSv1_0))
1114
- {
1115
- opts |= SSL_OP_NO_TLSv1;
1116
- }
1117
- #endif
1118
-
1119
- #ifdef SSL_OP_NO_TLSv1_1
1120
- if(!(protocols & TLSv1_1))
1121
- {
1122
- opts |= SSL_OP_NO_TLSv1_1;
1123
- //
1124
- // The value of SSL_OP_NO_TLSv1_1 changed between 1.0.1a and 1.0.1b.
1125
- //
1126
- if(SSL_OP_NO_TLSv1_1 == 0x00000400L)
1127
- {
1128
- opts |= 0x10000000L; // New value of SSL_OP_NO_TLSv1_1.
1129
- }
1130
- }
1131
- #endif
1132
-
1133
- #ifdef SSL_OP_NO_TLSv1_2
1134
- if(!(protocols & TLSv1_2))
1135
- {
1136
- opts |= SSL_OP_NO_TLSv1_2;
1137
- }
1138
- #endif
1139
-
1140
- #ifdef SSL_OP_NO_TLSv1_3
1141
- if(!(protocols & TLSv1_3))
1142
- {
1143
- opts |= SSL_OP_NO_TLSv1_3;
1144
- }
1145
- #endif
1146
- SSL_CTX_set_options(_ctx, opts);
1147
- }