zeroc-ice 3.7.10 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1216) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +575 -0
  3. data/dist/IceRuby/Communicator.h +19 -0
  4. data/dist/IceRuby/Config.h +77 -0
  5. data/dist/IceRuby/Connection.cpp +428 -0
  6. data/dist/IceRuby/Connection.h +20 -0
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +342 -0
  10. data/dist/IceRuby/Endpoint.h +18 -0
  11. data/dist/IceRuby/ImplicitContext.cpp +143 -0
  12. data/dist/IceRuby/ImplicitContext.h +16 -0
  13. data/dist/IceRuby/Init.cpp +36 -0
  14. data/dist/IceRuby/Logger.cpp +146 -0
  15. data/dist/IceRuby/Logger.h +19 -0
  16. data/dist/IceRuby/Operation.cpp +623 -0
  17. data/dist/IceRuby/Operation.h +28 -0
  18. data/dist/IceRuby/Properties.cpp +413 -0
  19. data/dist/IceRuby/Properties.h +16 -0
  20. data/dist/IceRuby/Proxy.cpp +926 -0
  21. data/dist/IceRuby/Proxy.h +21 -0
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +199 -0
  25. data/dist/IceRuby/Slice.h +13 -0
  26. data/dist/IceRuby/Types.cpp +3133 -0
  27. data/dist/IceRuby/Types.h +533 -0
  28. data/dist/IceRuby/Util.cpp +553 -0
  29. data/dist/IceRuby/Util.h +485 -0
  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 +14 -0
  33. data/dist/ice/cpp/include/Ice/Buffer.h +159 -0
  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 +60 -0
  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 +16 -0
  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 +56 -0
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +22 -0
  50. data/dist/ice/cpp/include/Ice/Ice.h +60 -0
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +216 -0
  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 +143 -0
  55. data/dist/ice/cpp/include/Ice/InputStream.h +942 -0
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +14 -0
  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 +162 -0
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +54 -0
  64. data/dist/ice/cpp/include/Ice/Object.h +168 -0
  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 +16 -0
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +164 -0
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +512 -0
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +872 -0
  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/Ice/PopDisableWarnings.h +16 -0
  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 +742 -0
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +11 -0
  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 +14 -0
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +20 -0
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +268 -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 +278 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +219 -0
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +125 -0
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +30 -0
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +652 -0
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +167 -0
  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 +16 -0
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +15 -0
  104. data/dist/ice/cpp/include/Ice/Value.h +127 -0
  105. data/dist/ice/cpp/include/Ice/ValueF.h +16 -0
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +28 -0
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +28 -0
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +70 -0
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +74 -0
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +108 -0
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +542 -0
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +1103 -0
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +245 -0
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +314 -0
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +724 -0
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +496 -0
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +37 -0
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +112 -0
  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 +41 -0
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +17 -0
  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 +58 -0
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +30 -0
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +263 -0
  134. data/dist/ice/cpp/src/Ice/Base64.h +26 -0
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +199 -0
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +49 -0
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +187 -0
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +373 -0
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +65 -0
  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 +227 -0
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +51 -0
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +14 -0
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +1758 -0
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +264 -0
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +17 -0
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +3563 -0
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +429 -0
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +38 -0
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +14 -0
  156. data/dist/ice/cpp/src/Ice/ConsoleUtil.cpp +136 -0
  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 +40 -0
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +81 -0
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +38 -0
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +14 -0
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +25 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +216 -0
  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 +165 -0
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +96 -0
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +14 -0
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +180 -0
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +42 -0
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +14 -0
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +128 -0
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +150 -0
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +21 -0
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +9 -0
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +71 -0
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +14 -0
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +5 -0
  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 +67 -0
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +684 -0
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +112 -0
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +593 -0
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +106 -0
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +17 -0
  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 +160 -0
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +2206 -0
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +1956 -0
  200. data/dist/ice/cpp/src/Ice/Instance.h +225 -0
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +959 -0
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +235 -0
  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 +851 -0
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +176 -0
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +20 -0
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +774 -0
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +31 -0
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +234 -0
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +47 -0
  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 +76 -0
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +608 -0
  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 +1927 -0
  222. data/dist/ice/cpp/src/Ice/Network.h +265 -0
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +11 -0
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +306 -0
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +67 -0
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +14 -0
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +55 -0
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +35 -0
  229. data/dist/ice/cpp/src/Ice/Object.cpp +249 -0
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +348 -0
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +53 -0
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +14 -0
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1383 -0
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +163 -0
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +75 -0
  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 +368 -0
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +66 -0
  240. data/dist/ice/cpp/src/Ice/Options.cpp +980 -0
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1106 -0
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +1454 -0
  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 +344 -0
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +54 -0
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +606 -0
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +63 -0
  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 +159 -0
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +186 -0
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +74 -0
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +14 -0
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +29 -0
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +35 -0
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +541 -0
  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 +1584 -0
  268. data/dist/ice/cpp/src/Ice/Reference.h +339 -0
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +830 -0
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +58 -0
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +14 -0
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +28 -0
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +53 -0
  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 +151 -0
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +59 -0
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +14 -0
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +275 -0
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +95 -0
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +17 -0
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +195 -0
  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 +513 -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 +635 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +487 -0
  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 +72 -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 +654 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +104 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1437 -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 +1085 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +822 -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 +1061 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +222 -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 +1270 -0
  326. data/dist/ice/cpp/src/Ice/Selector.h +235 -0
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +547 -0
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +66 -0
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +1790 -0
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +33 -0
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +48 -0
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +472 -0
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +73 -0
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +582 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +160 -0
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +34 -0
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +65 -0
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +33 -0
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +213 -0
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +55 -0
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +128 -0
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +36 -0
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +411 -0
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +86 -0
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +147 -0
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +53 -0
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1110 -0
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +305 -0
  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 +169 -0
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +20 -0
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +39 -0
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +14 -0
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +399 -0
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +41 -0
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +14 -0
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +52 -0
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +23 -0
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +131 -0
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +36 -0
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +480 -0
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +92 -0
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +786 -0
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +90 -0
  373. data/dist/ice/cpp/src/Ice/UndefSysMacros.h +37 -0
  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 +145 -0
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +87 -0
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +46 -0
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +87 -0
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +36 -0
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +455 -0
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +82 -0
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +1715 -0
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +135 -0
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +40 -0
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +40 -0
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +47 -0
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +752 -0
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +1205 -0
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +330 -0
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +443 -0
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +851 -0
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +660 -0
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +39 -0
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +54 -0
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +202 -0
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +68 -0
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +494 -0
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +168 -0
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +155 -0
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +31 -0
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +24 -0
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +822 -0
  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 +96 -0
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +44 -0
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +4125 -0
  418. data/dist/ice/cpp/src/Slice/Grammar.h +138 -0
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +128 -0
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +473 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +4906 -0
  423. data/dist/ice/cpp/src/Slice/Parser.h +1175 -0
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +295 -0
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +44 -0
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +3445 -0
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +790 -0
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +448 -0
  429. data/dist/ice/cpp/src/Slice/Util.h +134 -0
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +33 -0
  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/mcpp/internal.H +530 -0
  435. data/dist/ice/mcpp/system.c +2741 -0
  436. data/dist/ice/slice/Glacier2/Metrics.ice +47 -0
  437. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +55 -0
  438. data/dist/ice/slice/Glacier2/Router.ice +93 -0
  439. data/dist/ice/slice/Glacier2/SSLInfo.ice +42 -0
  440. data/dist/ice/slice/Glacier2/Session.ice +133 -0
  441. data/dist/ice/slice/Ice/BuiltinSequences.ice +54 -0
  442. data/dist/ice/slice/Ice/Context.ice +24 -0
  443. data/dist/ice/slice/Ice/EndpointTypes.ice +50 -0
  444. data/dist/ice/slice/Ice/Identity.ice +36 -0
  445. data/dist/ice/slice/Ice/Locator.ice +74 -0
  446. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  447. data/dist/ice/slice/Ice/Metrics.ice +201 -0
  448. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  449. data/dist/ice/slice/Ice/Process.ice +28 -0
  450. data/dist/ice/slice/Ice/PropertiesAdmin.ice +37 -0
  451. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  452. data/dist/ice/slice/Ice/RemoteLogger.ice +126 -0
  453. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  454. data/dist/ice/slice/Ice/Router.ice +54 -0
  455. data/dist/ice/slice/Ice/SliceChecksumDict.ice +18 -0
  456. data/dist/ice/slice/Ice/Version.ice +43 -0
  457. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  458. data/dist/ice/slice/IceGrid/Admin.ice +981 -0
  459. data/dist/ice/slice/IceGrid/Descriptor.ice +519 -0
  460. data/dist/ice/slice/IceGrid/Exception.ice +98 -0
  461. data/dist/ice/slice/IceGrid/FileParser.ice +36 -0
  462. data/dist/ice/slice/IceGrid/Registry.ice +130 -0
  463. data/dist/ice/slice/IceGrid/Session.ice +64 -0
  464. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +34 -0
  465. data/dist/ice/slice/IceStorm/IceStorm.ice +186 -0
  466. data/dist/ice/slice/IceStorm/Metrics.ice +41 -0
  467. data/dist/lib/Glacier2/Metrics.rb +41 -0
  468. data/dist/lib/Glacier2/PermissionsVerifier.rb +61 -0
  469. data/dist/lib/Glacier2/Router.rb +73 -0
  470. data/dist/lib/Glacier2/SSLInfo.rb +64 -0
  471. data/dist/lib/Glacier2/Session.rb +187 -0
  472. data/dist/lib/Glacier2.rb +7 -0
  473. data/dist/lib/Ice/BuiltinSequences.rb +48 -0
  474. data/dist/lib/Ice/CompressBatch.rb +50 -0
  475. data/dist/lib/Ice/Context.rb +12 -0
  476. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  477. data/dist/lib/Ice/EndpointTypes.rb +28 -0
  478. data/dist/lib/Ice/Exception.rb +20 -0
  479. data/dist/lib/Ice/Identity.rb +47 -0
  480. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  481. data/dist/lib/Ice/InitializationData.rb +12 -0
  482. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  483. data/dist/lib/Ice/Locator.rb +83 -0
  484. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  485. data/dist/lib/Ice/Metrics.rb +290 -0
  486. data/dist/lib/Ice/OperationMode.rb +58 -0
  487. data/dist/lib/Ice/Process.rb +34 -0
  488. data/dist/lib/Ice/PropertiesAdmin.rb +39 -0
  489. data/dist/lib/Ice/PropertyDict.rb +12 -0
  490. data/dist/lib/Ice/Proxy.rb +85 -0
  491. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  492. data/dist/lib/Ice/RemoteLogger.rb +176 -0
  493. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  494. data/dist/lib/Ice/Router.rb +59 -0
  495. data/dist/lib/Ice/SliceChecksumDict.rb +12 -0
  496. data/dist/lib/Ice/SliceUtil.rb +41 -0
  497. data/dist/lib/Ice/Struct.rb +11 -0
  498. data/dist/lib/Ice/ToStringMode.rb +50 -0
  499. data/dist/lib/Ice/Value.rb +93 -0
  500. data/dist/lib/Ice/Version.rb +78 -0
  501. data/dist/lib/Ice.rb +37 -0
  502. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  503. data/dist/lib/IceBox.rb +3 -0
  504. data/dist/lib/IceGrid/Admin.rb +1208 -0
  505. data/dist/lib/IceGrid/Descriptor.rb +989 -0
  506. data/dist/lib/IceGrid/Exception.rb +145 -0
  507. data/dist/lib/IceGrid/FileParser.rb +41 -0
  508. data/dist/lib/IceGrid/Registry.rb +168 -0
  509. data/dist/lib/IceGrid/Session.rb +56 -0
  510. data/dist/lib/IceGrid/UserAccountMapper.rb +38 -0
  511. data/dist/lib/IceGrid.rb +9 -0
  512. data/dist/lib/IceStorm/IceStorm.rb +251 -0
  513. data/dist/lib/IceStorm/Metrics.rb +55 -0
  514. data/dist/lib/IceStorm.rb +4 -0
  515. data/extconf.rb +89 -0
  516. data/ice.gemspec +22 -17
  517. data/scripts/slice2rb +10 -0
  518. metadata +536 -712
  519. data/ICE_LICENSE +0 -48
  520. data/LICENSE +0 -340
  521. data/MCPP_LICENSE +0 -29
  522. data/bin/slice2rb +0 -12
  523. data/ext/Communicator.cpp +0 -792
  524. data/ext/Communicator.h +0 -20
  525. data/ext/Config.h +0 -143
  526. data/ext/Connection.cpp +0 -532
  527. data/ext/Connection.h +0 -24
  528. data/ext/Endpoint.cpp +0 -340
  529. data/ext/Endpoint.h +0 -22
  530. data/ext/ImplicitContext.cpp +0 -144
  531. data/ext/ImplicitContext.h +0 -20
  532. data/ext/Init.cpp +0 -49
  533. data/ext/Logger.cpp +0 -147
  534. data/ext/Logger.h +0 -23
  535. data/ext/Operation.cpp +0 -661
  536. data/ext/Operation.h +0 -31
  537. data/ext/Properties.cpp +0 -365
  538. data/ext/Properties.h +0 -20
  539. data/ext/Proxy.cpp +0 -1396
  540. data/ext/Proxy.h +0 -22
  541. data/ext/Slice.cpp +0 -205
  542. data/ext/Slice.h +0 -17
  543. data/ext/Types.cpp +0 -3325
  544. data/ext/Types.h +0 -595
  545. data/ext/Util.cpp +0 -812
  546. data/ext/Util.h +0 -586
  547. data/ext/ValueFactoryManager.cpp +0 -441
  548. data/ext/ValueFactoryManager.h +0 -95
  549. data/ext/extconf.rb +0 -97
  550. data/ext/ice/cpp/include/Ice/Application.h +0 -326
  551. data/ext/ice/cpp/include/Ice/AsyncResult.h +0 -155
  552. data/ext/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  553. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  554. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -20
  555. data/ext/ice/cpp/include/Ice/Buffer.h +0 -154
  556. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  557. data/ext/ice/cpp/include/Ice/Comparable.h +0 -205
  558. data/ext/ice/cpp/include/Ice/Config.h +0 -76
  559. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  560. data/ext/ice/cpp/include/Ice/ConnectionIF.h +0 -38
  561. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  562. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  563. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  564. data/ext/ice/cpp/include/Ice/Dispatcher.h +0 -67
  565. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  566. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  567. data/ext/ice/cpp/include/Ice/Exception.h +0 -161
  568. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  569. data/ext/ice/cpp/include/Ice/FactoryTable.h +0 -73
  570. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  571. data/ext/ice/cpp/include/Ice/Format.h +0 -38
  572. data/ext/ice/cpp/include/Ice/Functional.h +0 -140
  573. data/ext/ice/cpp/include/Ice/GCObject.h +0 -76
  574. data/ext/ice/cpp/include/Ice/Handle.h +0 -182
  575. data/ext/ice/cpp/include/Ice/Ice.h +0 -55
  576. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +0 -377
  577. data/ext/ice/cpp/include/Ice/Incoming.h +0 -225
  578. data/ext/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  579. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  580. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  581. data/ext/ice/cpp/include/Ice/InputStream.h +0 -1514
  582. data/ext/ice/cpp/include/Ice/InstanceF.h +0 -20
  583. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  584. data/ext/ice/cpp/include/Ice/LocalObject.h +0 -35
  585. data/ext/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  586. data/ext/ice/cpp/include/Ice/LoggerUtil.h +0 -185
  587. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  588. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  589. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  590. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -86
  591. data/ext/ice/cpp/include/Ice/Object.h +0 -507
  592. data/ext/ice/cpp/include/Ice/ObjectF.h +0 -30
  593. data/ext/ice/cpp/include/Ice/ObserverHelper.h +0 -182
  594. data/ext/ice/cpp/include/Ice/Optional.h +0 -1114
  595. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  596. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  597. data/ext/ice/cpp/include/Ice/OutputStream.h +0 -1092
  598. data/ext/ice/cpp/include/Ice/Protocol.h +0 -274
  599. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  600. data/ext/ice/cpp/include/Ice/ProxyF.h +0 -53
  601. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  602. data/ext/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  603. data/ext/ice/cpp/include/Ice/ReferenceF.h +0 -29
  604. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  605. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +0 -30
  606. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  607. data/ext/ice/cpp/include/Ice/SHA1.h +0 -40
  608. data/ext/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  609. data/ext/ice/cpp/include/Ice/Service.h +0 -379
  610. data/ext/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  611. data/ext/ice/cpp/include/Ice/SlicedData.h +0 -172
  612. data/ext/ice/cpp/include/Ice/SlicedDataF.h +0 -40
  613. data/ext/ice/cpp/include/Ice/StreamHelpers.h +0 -1190
  614. data/ext/ice/cpp/include/Ice/StringConverter.h +0 -78
  615. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  616. data/ext/ice/cpp/include/Ice/UUID.h +0 -19
  617. data/ext/ice/cpp/include/Ice/UniquePtr.h +0 -95
  618. data/ext/ice/cpp/include/Ice/UniqueRef.h +0 -97
  619. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  620. data/ext/ice/cpp/include/Ice/Value.h +0 -139
  621. data/ext/ice/cpp/include/Ice/ValueF.h +0 -21
  622. data/ext/ice/cpp/include/IceSSL/Config.h +0 -21
  623. data/ext/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  624. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  625. data/ext/ice/cpp/include/IceSSL/Plugin.h +0 -712
  626. data/ext/ice/cpp/include/IceSSL/SChannel.h +0 -72
  627. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  628. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  629. data/ext/ice/cpp/include/IceUtil/Atomic.h +0 -179
  630. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  631. data/ext/ice/cpp/include/IceUtil/Config.h +0 -392
  632. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  633. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  634. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  635. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  636. data/ext/ice/cpp/include/IceUtil/Exception.h +0 -394
  637. data/ext/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  638. data/ext/ice/cpp/include/IceUtil/Functional.h +0 -389
  639. data/ext/ice/cpp/include/IceUtil/Handle.h +0 -261
  640. data/ext/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  641. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  642. data/ext/ice/cpp/include/IceUtil/Iterator.h +0 -31
  643. data/ext/ice/cpp/include/IceUtil/Lock.h +0 -128
  644. data/ext/ice/cpp/include/IceUtil/Monitor.h +0 -243
  645. data/ext/ice/cpp/include/IceUtil/Mutex.h +0 -349
  646. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  647. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  648. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  649. data/ext/ice/cpp/include/IceUtil/Optional.h +0 -433
  650. data/ext/ice/cpp/include/IceUtil/Options.h +0 -135
  651. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  652. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -14
  653. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  654. data/ext/ice/cpp/include/IceUtil/Random.h +0 -55
  655. data/ext/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  656. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  657. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  658. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  659. data/ext/ice/cpp/include/IceUtil/Shared.h +0 -127
  660. data/ext/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  661. data/ext/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  662. data/ext/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  663. data/ext/ice/cpp/include/IceUtil/Thread.h +0 -160
  664. data/ext/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  665. data/ext/ice/cpp/include/IceUtil/Time.h +0 -205
  666. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -144
  667. data/ext/ice/cpp/include/IceUtil/UUID.h +0 -21
  668. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -37
  669. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  670. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  671. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  672. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  673. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  674. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  675. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  676. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  677. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  678. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  679. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  680. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  681. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  682. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  683. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  684. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  685. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  686. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  687. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  688. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  689. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  690. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  691. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  692. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  693. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  694. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  695. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  696. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  697. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  698. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  699. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  700. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  701. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  702. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  703. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  704. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  705. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  706. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  707. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  708. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  709. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  710. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  711. data/ext/ice/cpp/src/Ice/ACM.cpp +0 -380
  712. data/ext/ice/cpp/src/Ice/ACM.h +0 -119
  713. data/ext/ice/cpp/src/Ice/ACMF.h +0 -30
  714. data/ext/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  715. data/ext/ice/cpp/src/Ice/Acceptor.h +0 -37
  716. data/ext/ice/cpp/src/Ice/AcceptorF.h +0 -25
  717. data/ext/ice/cpp/src/Ice/ArgVector.cpp +0 -59
  718. data/ext/ice/cpp/src/Ice/ArgVector.h +0 -36
  719. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  720. data/ext/ice/cpp/src/Ice/Base64.cpp +0 -263
  721. data/ext/ice/cpp/src/Ice/Base64.h +0 -31
  722. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -250
  723. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +0 -59
  724. data/ext/ice/cpp/src/Ice/Buffer.cpp +0 -155
  725. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  726. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -407
  727. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -87
  728. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  729. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  730. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  731. data/ext/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  732. data/ext/ice/cpp/src/Ice/Cond.cpp +0 -381
  733. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -348
  734. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -72
  735. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -24
  736. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  737. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  738. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -1972
  739. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +0 -264
  740. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -30
  741. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +0 -3670
  742. data/ext/ice/cpp/src/Ice/ConnectionI.h +0 -389
  743. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  744. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  745. data/ext/ice/cpp/src/Ice/Connector.cpp +0 -16
  746. data/ext/ice/cpp/src/Ice/Connector.h +0 -32
  747. data/ext/ice/cpp/src/Ice/ConnectorF.h +0 -21
  748. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  749. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  750. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -159
  751. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -52
  752. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -21
  753. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  754. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -284
  755. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  756. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  757. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  758. data/ext/ice/cpp/src/Ice/EndpointFactory.h +0 -117
  759. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +0 -21
  760. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -213
  761. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -47
  762. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -21
  763. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  764. data/ext/ice/cpp/src/Ice/EndpointI.h +0 -218
  765. data/ext/ice/cpp/src/Ice/EndpointIF.h +0 -49
  766. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  767. data/ext/ice/cpp/src/Ice/EventHandler.cpp +0 -32
  768. data/ext/ice/cpp/src/Ice/EventHandler.h +0 -81
  769. data/ext/ice/cpp/src/Ice/EventHandlerF.h +0 -24
  770. data/ext/ice/cpp/src/Ice/Exception.cpp +0 -818
  771. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  772. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  773. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  774. data/ext/ice/cpp/src/Ice/GCObject.cpp +0 -442
  775. data/ext/ice/cpp/src/Ice/HashUtil.h +0 -53
  776. data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -684
  777. data/ext/ice/cpp/src/Ice/HttpParser.h +0 -117
  778. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +0 -710
  779. data/ext/ice/cpp/src/Ice/IPEndpointI.h +0 -152
  780. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +0 -28
  781. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  782. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  783. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  784. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  785. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  786. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  787. data/ext/ice/cpp/src/Ice/Incoming.cpp +0 -795
  788. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  789. data/ext/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  790. data/ext/ice/cpp/src/Ice/Initialize.cpp +0 -654
  791. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  792. data/ext/ice/cpp/src/Ice/Instance.cpp +0 -1967
  793. data/ext/ice/cpp/src/Ice/Instance.h +0 -235
  794. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  795. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  796. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +0 -1094
  797. data/ext/ice/cpp/src/Ice/InstrumentationI.h +0 -256
  798. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  799. data/ext/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  800. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  801. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  802. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +0 -889
  803. data/ext/ice/cpp/src/Ice/LocatorInfo.h +0 -189
  804. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +0 -29
  805. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  806. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -956
  807. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +0 -41
  808. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  809. data/ext/ice/cpp/src/Ice/LoggerI.cpp +0 -259
  810. data/ext/ice/cpp/src/Ice/LoggerI.h +0 -52
  811. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +0 -100
  812. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  813. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  814. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  815. data/ext/ice/cpp/src/Ice/Network.cpp +0 -2249
  816. data/ext/ice/cpp/src/Ice/Network.h +0 -289
  817. data/ext/ice/cpp/src/Ice/NetworkF.h +0 -19
  818. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +0 -311
  819. data/ext/ice/cpp/src/Ice/NetworkProxy.h +0 -72
  820. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +0 -21
  821. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -57
  822. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +0 -40
  823. data/ext/ice/cpp/src/Ice/Object.cpp +0 -435
  824. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  825. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  826. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -291
  827. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -53
  828. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -25
  829. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  830. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +0 -159
  831. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  832. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +0 -56
  833. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -408
  834. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -74
  835. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  836. data/ext/ice/cpp/src/Ice/OutputStream.cpp +0 -1367
  837. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  838. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  839. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  840. data/ext/ice/cpp/src/Ice/PluginManagerI.h +0 -61
  841. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  842. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  843. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  844. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  845. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  846. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  847. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  848. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  849. data/ext/ice/cpp/src/Ice/PropertiesI.h +0 -70
  850. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  851. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  852. data/ext/ice/cpp/src/Ice/Protocol.cpp +0 -124
  853. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -131
  854. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +0 -93
  855. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -21
  856. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -51
  857. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -64
  858. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  859. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  860. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  861. data/ext/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  862. data/ext/ice/cpp/src/Ice/Reference.cpp +0 -2046
  863. data/ext/ice/cpp/src/Ice/Reference.h +0 -323
  864. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -888
  865. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +0 -76
  866. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -19
  867. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  868. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  869. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  870. data/ext/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  871. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +0 -37
  872. data/ext/ice/cpp/src/Ice/RequestHandler.h +0 -78
  873. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  874. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  875. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  876. data/ext/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  877. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +0 -157
  878. data/ext/ice/cpp/src/Ice/RetryQueue.h +0 -66
  879. data/ext/ice/cpp/src/Ice/RetryQueueF.h +0 -19
  880. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  881. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  882. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +0 -379
  883. data/ext/ice/cpp/src/Ice/RouterInfo.h +0 -152
  884. data/ext/ice/cpp/src/Ice/RouterInfoF.h +0 -25
  885. data/ext/ice/cpp/src/Ice/SHA1.cpp +0 -169
  886. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1525
  887. data/ext/ice/cpp/src/Ice/Selector.h +0 -292
  888. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  889. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  890. data/ext/ice/cpp/src/Ice/ServantManager.cpp +0 -480
  891. data/ext/ice/cpp/src/Ice/ServantManager.h +0 -69
  892. data/ext/ice/cpp/src/Ice/SharedContext.h +0 -46
  893. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  894. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  895. data/ext/ice/cpp/src/Ice/SlicedData.cpp +0 -127
  896. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -519
  897. data/ext/ice/cpp/src/Ice/StreamSocket.h +0 -85
  898. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  899. data/ext/ice/cpp/src/Ice/StringUtil.h +0 -30
  900. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +0 -166
  901. data/ext/ice/cpp/src/Ice/SysLoggerI.h +0 -37
  902. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -66
  903. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +0 -39
  904. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -234
  905. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +0 -61
  906. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +0 -127
  907. data/ext/ice/cpp/src/Ice/TcpConnector.h +0 -45
  908. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -385
  909. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +0 -90
  910. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -135
  911. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +0 -58
  912. data/ext/ice/cpp/src/Ice/Thread.cpp +0 -569
  913. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1292
  914. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -393
  915. data/ext/ice/cpp/src/Ice/Timer.cpp +0 -263
  916. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +0 -38
  917. data/ext/ice/cpp/src/Ice/TraceLevels.h +0 -45
  918. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +0 -21
  919. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +0 -478
  920. data/ext/ice/cpp/src/Ice/TraceUtil.h +0 -30
  921. data/ext/ice/cpp/src/Ice/Transceiver.cpp +0 -18
  922. data/ext/ice/cpp/src/Ice/Transceiver.h +0 -49
  923. data/ext/ice/cpp/src/Ice/TransceiverF.h +0 -33
  924. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +0 -131
  925. data/ext/ice/cpp/src/Ice/UdpConnector.h +0 -45
  926. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -515
  927. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +0 -95
  928. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -806
  929. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +0 -96
  930. data/ext/ice/cpp/src/Ice/Value.cpp +0 -76
  931. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  932. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  933. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  934. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  935. data/ext/ice/cpp/src/Ice/VirtualShared.h +0 -38
  936. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +0 -92
  937. data/ext/ice/cpp/src/Ice/WSAcceptor.h +0 -52
  938. data/ext/ice/cpp/src/Ice/WSConnector.cpp +0 -102
  939. data/ext/ice/cpp/src/Ice/WSConnector.h +0 -43
  940. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +0 -508
  941. data/ext/ice/cpp/src/Ice/WSEndpoint.h +0 -93
  942. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +0 -1704
  943. data/ext/ice/cpp/src/Ice/WSTransceiver.h +0 -141
  944. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  945. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  946. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -265
  947. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +0 -109
  948. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -608
  949. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +0 -228
  950. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -176
  951. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +0 -36
  952. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  953. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  954. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -47
  955. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -1048
  956. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  957. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  958. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  959. data/ext/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  960. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  961. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  962. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  963. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  964. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  965. data/ext/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  966. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  967. data/ext/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  968. data/ext/ice/cpp/src/IceSSL/Instance.h +0 -37
  969. data/ext/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  970. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  971. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  972. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  973. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  974. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  975. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  976. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  977. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  978. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  979. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  980. data/ext/ice/cpp/src/IceSSL/PluginI.h +0 -67
  981. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +0 -490
  982. data/ext/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  983. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  984. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  985. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  986. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  987. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  988. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  989. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  990. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  991. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  992. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  993. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  994. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  995. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  996. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  997. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  998. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  999. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  1000. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  1001. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  1002. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  1003. data/ext/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  1004. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  1005. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  1006. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  1007. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  1008. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  1009. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  1010. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  1011. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  1012. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -192
  1013. data/ext/ice/cpp/src/IceSSL/Util.h +0 -99
  1014. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -157
  1015. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  1016. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  1017. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  1018. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  1019. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  1020. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  1021. data/ext/ice/cpp/src/IceUtil/Options.cpp +0 -1051
  1022. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  1023. data/ext/ice/cpp/src/IceUtil/Random.cpp +0 -180
  1024. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  1025. data/ext/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  1026. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  1027. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  1028. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  1029. data/ext/ice/cpp/src/IceUtil/Time.cpp +0 -307
  1030. data/ext/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  1031. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  1032. data/ext/ice/cpp/src/IceUtil/Unicode.h +0 -43
  1033. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  1034. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  1035. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  1036. data/ext/ice/cpp/src/Slice/Checksum.cpp +0 -447
  1037. data/ext/ice/cpp/src/Slice/Checksum.h +0 -21
  1038. data/ext/ice/cpp/src/Slice/FileTracker.cpp +0 -146
  1039. data/ext/ice/cpp/src/Slice/FileTracker.h +0 -66
  1040. data/ext/ice/cpp/src/Slice/Grammar.cpp +0 -4793
  1041. data/ext/ice/cpp/src/Slice/Grammar.h +0 -118
  1042. data/ext/ice/cpp/src/Slice/GrammarUtil.h +0 -228
  1043. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5176
  1044. data/ext/ice/cpp/src/Slice/JavaUtil.h +0 -407
  1045. data/ext/ice/cpp/src/Slice/MD5.cpp +0 -52
  1046. data/ext/ice/cpp/src/Slice/MD5.h +0 -39
  1047. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -393
  1048. data/ext/ice/cpp/src/Slice/MD5I.h +0 -91
  1049. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  1050. data/ext/ice/cpp/src/Slice/PHPUtil.h +0 -36
  1051. data/ext/ice/cpp/src/Slice/Parser.cpp +0 -7058
  1052. data/ext/ice/cpp/src/Slice/Parser.h +0 -1174
  1053. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +0 -797
  1054. data/ext/ice/cpp/src/Slice/Preprocessor.h +0 -60
  1055. data/ext/ice/cpp/src/Slice/Python.cpp +0 -830
  1056. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  1057. data/ext/ice/cpp/src/Slice/PythonUtil.h +0 -70
  1058. data/ext/ice/cpp/src/Slice/Ruby.cpp +0 -350
  1059. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  1060. data/ext/ice/cpp/src/Slice/RubyUtil.h +0 -49
  1061. data/ext/ice/cpp/src/Slice/Scanner.cpp +0 -2807
  1062. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +0 -424
  1063. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -456
  1064. data/ext/ice/cpp/src/Slice/Util.h +0 -50
  1065. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  1066. data/ext/ice/mcpp/LICENSE +0 -29
  1067. data/ext/ice/mcpp/Makefile +0 -63
  1068. data/ext/ice/mcpp/README.md +0 -32
  1069. data/ext/ice/mcpp/internal.H +0 -530
  1070. data/ext/ice/mcpp/mcpp.gyp +0 -88
  1071. data/ext/ice/mcpp/system.c +0 -2737
  1072. data/lib/Glacier2/Metrics.rb +0 -56
  1073. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  1074. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  1075. data/lib/Glacier2/Router.rb +0 -95
  1076. data/lib/Glacier2/RouterF.rb +0 -25
  1077. data/lib/Glacier2/SSLInfo.rb +0 -72
  1078. data/lib/Glacier2/Session.rb +0 -247
  1079. data/lib/Glacier2.rb +0 -7
  1080. data/lib/Ice/BuiltinSequences.rb +0 -60
  1081. data/lib/Ice/Communicator.rb +0 -87
  1082. data/lib/Ice/CommunicatorF.rb +0 -24
  1083. data/lib/Ice/Connection.rb +0 -413
  1084. data/lib/Ice/ConnectionF.rb +0 -32
  1085. data/lib/Ice/Current.rb +0 -141
  1086. data/lib/Ice/Endpoint.rb +0 -187
  1087. data/lib/Ice/EndpointF.rb +0 -48
  1088. data/lib/Ice/EndpointTypes.rb +0 -69
  1089. data/lib/Ice/FacetMap.rb +0 -24
  1090. data/lib/Ice/Identity.rb +0 -63
  1091. data/lib/Ice/ImplicitContext.rb +0 -26
  1092. data/lib/Ice/ImplicitContextF.rb +0 -24
  1093. data/lib/Ice/Instrumentation.rb +0 -169
  1094. data/lib/Ice/InstrumentationF.rb +0 -31
  1095. data/lib/Ice/LocalException.rb +0 -1031
  1096. data/lib/Ice/Locator.rb +0 -196
  1097. data/lib/Ice/LocatorF.rb +0 -30
  1098. data/lib/Ice/Logger.rb +0 -24
  1099. data/lib/Ice/LoggerF.rb +0 -24
  1100. data/lib/Ice/Metrics.rb +0 -337
  1101. data/lib/Ice/ObjectAdapter.rb +0 -29
  1102. data/lib/Ice/ObjectAdapterF.rb +0 -24
  1103. data/lib/Ice/ObjectFactory.rb +0 -24
  1104. data/lib/Ice/Plugin.rb +0 -30
  1105. data/lib/Ice/PluginF.rb +0 -28
  1106. data/lib/Ice/Process.rb +0 -53
  1107. data/lib/Ice/ProcessF.rb +0 -25
  1108. data/lib/Ice/Properties.rb +0 -25
  1109. data/lib/Ice/PropertiesAdmin.rb +0 -63
  1110. data/lib/Ice/PropertiesF.rb +0 -29
  1111. data/lib/Ice/RemoteLogger.rb +0 -207
  1112. data/lib/Ice/Router.rb +0 -87
  1113. data/lib/Ice/RouterF.rb +0 -25
  1114. data/lib/Ice/ServantLocator.rb +0 -26
  1115. data/lib/Ice/ServantLocatorF.rb +0 -24
  1116. data/lib/Ice/SliceChecksumDict.rb +0 -24
  1117. data/lib/Ice/ValueFactory.rb +0 -28
  1118. data/lib/Ice/Version.rb +0 -90
  1119. data/lib/Ice.rb +0 -673
  1120. data/lib/IceBox/IceBox.rb +0 -164
  1121. data/lib/IceBox.rb +0 -5
  1122. data/lib/IceGrid/Admin.rb +0 -1196
  1123. data/lib/IceGrid/Descriptor.rb +0 -1034
  1124. data/lib/IceGrid/Exception.rb +0 -376
  1125. data/lib/IceGrid/FileParser.rb +0 -65
  1126. data/lib/IceGrid/PluginFacade.rb +0 -35
  1127. data/lib/IceGrid/Registry.rb +0 -209
  1128. data/lib/IceGrid/Session.rb +0 -71
  1129. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  1130. data/lib/IceGrid.rb +0 -9
  1131. data/lib/IcePatch2/FileInfo.rb +0 -115
  1132. data/lib/IcePatch2/FileServer.rb +0 -123
  1133. data/lib/IcePatch2.rb +0 -5
  1134. data/lib/IceStorm/IceStorm.rb +0 -332
  1135. data/lib/IceStorm/Metrics.rb +0 -73
  1136. data/lib/IceStorm.rb +0 -6
  1137. data/slice/Glacier2/Metrics.ice +0 -88
  1138. data/slice/Glacier2/PermissionsVerifier.ice +0 -111
  1139. data/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  1140. data/slice/Glacier2/Router.ice +0 -186
  1141. data/slice/Glacier2/RouterF.ice +0 -29
  1142. data/slice/Glacier2/SSLInfo.ice +0 -59
  1143. data/slice/Glacier2/Session.ice +0 -274
  1144. data/slice/Ice/BuiltinSequences.ice +0 -59
  1145. data/slice/Ice/Communicator.ice +0 -676
  1146. data/slice/Ice/CommunicatorF.ice +0 -31
  1147. data/slice/Ice/Connection.ice +0 -516
  1148. data/slice/Ice/ConnectionF.ice +0 -33
  1149. data/slice/Ice/Current.ice +0 -170
  1150. data/slice/Ice/Endpoint.ice +0 -291
  1151. data/slice/Ice/EndpointF.ice +0 -43
  1152. data/slice/Ice/EndpointTypes.ice +0 -48
  1153. data/slice/Ice/FacetMap.ice +0 -36
  1154. data/slice/Ice/Identity.ice +0 -75
  1155. data/slice/Ice/ImplicitContext.ice +0 -119
  1156. data/slice/Ice/ImplicitContextF.ice +0 -30
  1157. data/slice/Ice/Instrumentation.ice +0 -509
  1158. data/slice/Ice/InstrumentationF.ice +0 -38
  1159. data/slice/Ice/LocalException.ice +0 -1040
  1160. data/slice/Ice/Locator.ice +0 -239
  1161. data/slice/Ice/LocatorF.ice +0 -32
  1162. data/slice/Ice/Logger.ice +0 -99
  1163. data/slice/Ice/LoggerF.ice +0 -31
  1164. data/slice/Ice/Metrics.ice +0 -436
  1165. data/slice/Ice/ObjectAdapter.ice +0 -710
  1166. data/slice/Ice/ObjectAdapterF.ice +0 -31
  1167. data/slice/Ice/ObjectFactory.ice +0 -71
  1168. data/slice/Ice/Plugin.ice +0 -131
  1169. data/slice/Ice/PluginF.ice +0 -36
  1170. data/slice/Ice/Process.ice +0 -64
  1171. data/slice/Ice/ProcessF.ice +0 -31
  1172. data/slice/Ice/Properties.ice +0 -244
  1173. data/slice/Ice/PropertiesAdmin.ice +0 -87
  1174. data/slice/Ice/PropertiesF.ice +0 -32
  1175. data/slice/Ice/RemoteLogger.ice +0 -226
  1176. data/slice/Ice/Router.ice +0 -103
  1177. data/slice/Ice/RouterF.ice +0 -31
  1178. data/slice/Ice/ServantLocator.ice +0 -136
  1179. data/slice/Ice/ServantLocatorF.ice +0 -31
  1180. data/slice/Ice/SliceChecksumDict.ice +0 -36
  1181. data/slice/Ice/ValueFactory.ice +0 -133
  1182. data/slice/Ice/Version.ice +0 -51
  1183. data/slice/IceBT/ConnectionInfo.ice +0 -59
  1184. data/slice/IceBT/EndpointInfo.ice +0 -57
  1185. data/slice/IceBT/Types.ice +0 -45
  1186. data/slice/IceBox/IceBox.ice +0 -216
  1187. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  1188. data/slice/IceGrid/Admin.ice +0 -1957
  1189. data/slice/IceGrid/Descriptor.ice +0 -1094
  1190. data/slice/IceGrid/Exception.ice +0 -396
  1191. data/slice/IceGrid/FileParser.ice +0 -72
  1192. data/slice/IceGrid/PluginFacade.ice +0 -329
  1193. data/slice/IceGrid/Registry.ice +0 -269
  1194. data/slice/IceGrid/Session.ice +0 -128
  1195. data/slice/IceGrid/UserAccountMapper.ice +0 -69
  1196. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  1197. data/slice/IceIAP/EndpointInfo.ice +0 -68
  1198. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  1199. data/slice/IcePatch2/FileInfo.ice +0 -85
  1200. data/slice/IcePatch2/FileServer.ice +0 -191
  1201. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  1202. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  1203. data/slice/IceSSL/EndpointInfo.ice +0 -45
  1204. data/slice/IceStorm/IceStorm.ice +0 -414
  1205. data/slice/IceStorm/Metrics.ice +0 -83
  1206. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  1207. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  1208. /data/{ext → dist}/ice/mcpp/directive.c +0 -0
  1209. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  1210. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  1211. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  1212. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  1213. /data/{ext/ice/mcpp/main.c → dist/ice/mcpp/mcpp_main.c} +0 -0
  1214. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  1215. /data/{ext → dist}/ice/mcpp/support.c +0 -0
  1216. /data/{ext → dist}/ice/mcpp/system.H +0 -0
@@ -0,0 +1,1927 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #include "Network.h"
4
+ #include "Ice/LocalExceptions.h"
5
+ #include "Ice/LoggerUtil.h" // For setTcpBufSize
6
+ #include "Ice/Properties.h" // For setTcpBufSize
7
+ #include "Ice/StringUtil.h"
8
+ #include "NetworkProxy.h"
9
+ #include "ProtocolInstance.h" // For setTcpBufSize
10
+ #include "Random.h"
11
+
12
+ #include "DisableWarnings.h"
13
+
14
+ #include <cassert>
15
+
16
+ // TODO: fix this warning
17
+ #if defined(_MSC_VER)
18
+ # pragma warning(disable : 4244) // 'argument': conversion from 'int' to 'u_short', possible loss of data
19
+ #endif
20
+
21
+ #if defined(_WIN32)
22
+ # include <Mswsock.h>
23
+ # include <iphlpapi.h>
24
+ # include <mstcpip.h>
25
+ # include <winsock2.h>
26
+ # include <ws2tcpip.h>
27
+ #else
28
+ # include <ifaddrs.h>
29
+ # include <net/if.h>
30
+ # include <sys/ioctl.h>
31
+ #endif
32
+
33
+ using namespace std;
34
+ using namespace Ice;
35
+ using namespace IceInternal;
36
+
37
+ namespace
38
+ {
39
+ void sortAddresses(vector<Address>& addrs, ProtocolSupport protocol, bool preferIPv6)
40
+ {
41
+ if (protocol == EnableBoth)
42
+ {
43
+ if (preferIPv6)
44
+ {
45
+ stable_partition(
46
+ addrs.begin(),
47
+ addrs.end(),
48
+ [](const Address& ss) { return ss.saStorage.ss_family == AF_INET6; });
49
+ }
50
+ else
51
+ {
52
+ stable_partition(
53
+ addrs.begin(),
54
+ addrs.end(),
55
+ [](const Address& ss) { return ss.saStorage.ss_family != AF_INET6; });
56
+ }
57
+ }
58
+ }
59
+
60
+ void setTcpNoDelay(SOCKET fd)
61
+ {
62
+ int flag = 1;
63
+ if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast<char*>(&flag), int(sizeof(int))) == SOCKET_ERROR)
64
+ {
65
+ closeSocketNoThrow(fd);
66
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
67
+ }
68
+ }
69
+
70
+ void setKeepAlive(SOCKET fd)
71
+ {
72
+ int flag = 1;
73
+ if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, reinterpret_cast<char*>(&flag), int(sizeof(int))) == SOCKET_ERROR)
74
+ {
75
+ closeSocketNoThrow(fd);
76
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
77
+ }
78
+ }
79
+
80
+ SOCKET
81
+ createSocketImpl(bool udp, int family)
82
+ {
83
+ SOCKET fd;
84
+ if (udp)
85
+ {
86
+ fd = socket(family, SOCK_DGRAM, IPPROTO_UDP);
87
+ }
88
+ else
89
+ {
90
+ fd = socket(family, SOCK_STREAM, IPPROTO_TCP);
91
+ }
92
+
93
+ if (fd == INVALID_SOCKET)
94
+ {
95
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
96
+ }
97
+
98
+ if (!udp)
99
+ {
100
+ setTcpNoDelay(fd);
101
+ setKeepAlive(fd);
102
+ }
103
+
104
+ return fd;
105
+ }
106
+
107
+ // Only used for multicast.
108
+ vector<Address> getLocalAddresses(ProtocolSupport protocol)
109
+ {
110
+ vector<Address> result;
111
+
112
+ #if defined(_WIN32)
113
+ DWORD family;
114
+ switch (protocol)
115
+ {
116
+ case EnableIPv4:
117
+ family = AF_INET;
118
+ break;
119
+ case EnableIPv6:
120
+ family = AF_INET6;
121
+ break;
122
+ default:
123
+ family = AF_UNSPEC;
124
+ break;
125
+ }
126
+
127
+ DWORD size = 0;
128
+ DWORD rv = GetAdaptersAddresses(family, 0, nullptr, nullptr, &size);
129
+ if (rv == ERROR_BUFFER_OVERFLOW)
130
+ {
131
+ PIP_ADAPTER_ADDRESSES adapter_addresses = (PIP_ADAPTER_ADDRESSES)malloc(size);
132
+ rv = GetAdaptersAddresses(family, 0, nullptr, adapter_addresses, &size);
133
+ if (rv == ERROR_SUCCESS)
134
+ {
135
+ for (PIP_ADAPTER_ADDRESSES aa = adapter_addresses; aa != nullptr; aa = aa->Next)
136
+ {
137
+ if (aa->OperStatus == IfOperStatusUp && (aa->Flags & IP_ADAPTER_NO_MULTICAST) == 0)
138
+ {
139
+ for (PIP_ADAPTER_UNICAST_ADDRESS ua = aa->FirstUnicastAddress; ua != nullptr; ua = ua->Next)
140
+ {
141
+ Address addr;
142
+ memcpy(&addr.saStorage, ua->Address.lpSockaddr, ua->Address.iSockaddrLength);
143
+ if (addr.saStorage.ss_family == AF_INET && protocol != EnableIPv6)
144
+ {
145
+ if (addr.saIn.sin_addr.s_addr != INADDR_ANY)
146
+ {
147
+ result.push_back(addr);
148
+ break; // We return at most one address per interface.
149
+ }
150
+ }
151
+ else if (addr.saStorage.ss_family == AF_INET6 && protocol != EnableIPv4)
152
+ {
153
+ if (!IN6_IS_ADDR_UNSPECIFIED(&addr.saIn6.sin6_addr))
154
+ {
155
+ result.push_back(addr);
156
+ break; // We return at most one address per interface.
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+
164
+ free(adapter_addresses);
165
+ }
166
+ #else
167
+ struct ifaddrs* ifap;
168
+ if (::getifaddrs(&ifap) == SOCKET_ERROR)
169
+ {
170
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
171
+ }
172
+
173
+ struct ifaddrs* curr = ifap;
174
+ set<string> interfaces;
175
+ while (curr != nullptr)
176
+ {
177
+ unsigned int flags = curr->ifa_flags;
178
+ if ((flags & IFF_UP) != 0 && (flags & IFF_MULTICAST) != 0 && curr->ifa_addr)
179
+ {
180
+ if (curr->ifa_addr->sa_family == AF_INET && protocol != EnableIPv6)
181
+ {
182
+ Address addr;
183
+ memcpy(&addr.saStorage, curr->ifa_addr, sizeof(sockaddr_in));
184
+ // one address per interface name
185
+ if (addr.saIn.sin_addr.s_addr != INADDR_ANY && interfaces.insert(curr->ifa_name).second)
186
+ {
187
+ result.push_back(addr);
188
+ }
189
+ }
190
+ else if (curr->ifa_addr->sa_family == AF_INET6 && protocol != EnableIPv4)
191
+ {
192
+ Address addr;
193
+ memcpy(&addr.saStorage, curr->ifa_addr, sizeof(sockaddr_in6));
194
+ // one address per interface name
195
+ if (!IN6_IS_ADDR_UNSPECIFIED(&addr.saIn6.sin6_addr) && interfaces.insert(curr->ifa_name).second)
196
+ {
197
+ result.push_back(addr);
198
+ }
199
+ }
200
+ }
201
+ curr = curr->ifa_next;
202
+ }
203
+
204
+ ::freeifaddrs(ifap);
205
+ #endif
206
+ return result;
207
+ }
208
+
209
+ bool isWildcard(const string& host, ProtocolSupport protocol, bool& ipv4)
210
+ {
211
+ Address addr = getAddressForServer(host, 0, protocol, true, false);
212
+ if (addr.saStorage.ss_family == AF_INET)
213
+ {
214
+ if (addr.saIn.sin_addr.s_addr == INADDR_ANY)
215
+ {
216
+ ipv4 = true;
217
+ return true;
218
+ }
219
+ }
220
+ else if (addr.saStorage.ss_family == AF_INET6)
221
+ {
222
+ if (IN6_IS_ADDR_UNSPECIFIED(&addr.saIn6.sin6_addr))
223
+ {
224
+ ipv4 = false;
225
+ return true;
226
+ }
227
+ }
228
+ return false;
229
+ }
230
+
231
+ int getInterfaceIndex(const string& intf)
232
+ {
233
+ if (intf.empty())
234
+ {
235
+ return 0;
236
+ }
237
+
238
+ string name;
239
+ bool isAddr;
240
+ in6_addr addr;
241
+ string::size_type pos = intf.find('%');
242
+ if (pos != string::npos)
243
+ {
244
+ //
245
+ // If it's a link-local address, use the zone indice.
246
+ //
247
+ isAddr = false;
248
+ name = intf.substr(pos + 1);
249
+ }
250
+ else
251
+ {
252
+ //
253
+ // Then check if it's an IPv6 address. If it's an address we'll
254
+ // look for the interface index by address.
255
+ //
256
+ isAddr = inet_pton(AF_INET6, intf.c_str(), &addr) > 0;
257
+ name = intf;
258
+ }
259
+
260
+ //
261
+ // Check if index
262
+ //
263
+ int index = -1;
264
+ istringstream p(name);
265
+ if ((p >> index) && p.eof())
266
+ {
267
+ return index;
268
+ }
269
+
270
+ #ifdef _WIN32
271
+ IP_ADAPTER_ADDRESSES addrs;
272
+ ULONG buflen = 0;
273
+ if (::GetAdaptersAddresses(AF_INET6, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW)
274
+ {
275
+ PIP_ADAPTER_ADDRESSES paddrs;
276
+ char* buf = new char[buflen];
277
+ paddrs = reinterpret_cast<PIP_ADAPTER_ADDRESSES>(buf);
278
+ if (::GetAdaptersAddresses(AF_INET6, 0, 0, paddrs, &buflen) == NO_ERROR)
279
+ {
280
+ while (paddrs)
281
+ {
282
+ if (isAddr)
283
+ {
284
+ PIP_ADAPTER_UNICAST_ADDRESS ipAddr = paddrs->FirstUnicastAddress;
285
+ while (ipAddr)
286
+ {
287
+ if (ipAddr->Address.lpSockaddr->sa_family == AF_INET6)
288
+ {
289
+ struct sockaddr_in6* ipv6Addr =
290
+ reinterpret_cast<struct sockaddr_in6*>(ipAddr->Address.lpSockaddr);
291
+ if (memcmp(&addr, &ipv6Addr->sin6_addr, sizeof(in6_addr)) == 0)
292
+ {
293
+ break;
294
+ }
295
+ }
296
+ ipAddr = ipAddr->Next;
297
+ }
298
+ if (ipAddr)
299
+ {
300
+ index = paddrs->Ipv6IfIndex;
301
+ break;
302
+ }
303
+ }
304
+ else
305
+ {
306
+ //
307
+ // Don't need to pass a wide string converter as the wide string
308
+ // come from Windows API.
309
+ //
310
+ if (wstringToString(paddrs->FriendlyName, getProcessStringConverter()) == name)
311
+ {
312
+ index = paddrs->Ipv6IfIndex;
313
+ break;
314
+ }
315
+ }
316
+ paddrs = paddrs->Next;
317
+ }
318
+ }
319
+ delete[] buf;
320
+ }
321
+ if (index < 0) // interface not found
322
+ {
323
+ throw Ice::SocketException(__FILE__, __LINE__, WSAEINVAL);
324
+ }
325
+ #else
326
+ // Look for an interface with a matching IP address
327
+ if (isAddr)
328
+ {
329
+ struct ifaddrs* ifap;
330
+ if (::getifaddrs(&ifap) != SOCKET_ERROR)
331
+ {
332
+ struct ifaddrs* curr = ifap;
333
+ while (curr != nullptr)
334
+ {
335
+ if (curr->ifa_addr && curr->ifa_addr->sa_family == AF_INET6)
336
+ {
337
+ auto* ipv6Addr = reinterpret_cast<struct sockaddr_in6*>(curr->ifa_addr);
338
+ if (memcmp(&addr, &ipv6Addr->sin6_addr, sizeof(in6_addr)) == 0)
339
+ {
340
+ index = static_cast<int>(if_nametoindex(curr->ifa_name));
341
+ break;
342
+ }
343
+ }
344
+ curr = curr->ifa_next;
345
+ }
346
+ ::freeifaddrs(ifap);
347
+ }
348
+ }
349
+ else // Look for an interface with the given name.
350
+ {
351
+ index = static_cast<int>(if_nametoindex(name.c_str()));
352
+ }
353
+ if (index <= 0)
354
+ {
355
+ // index == 0 if if_nametoindex returned 0, < 0 if name wasn't found
356
+ throw Ice::SocketException(__FILE__, __LINE__, index == 0 ? getSocketErrno() : ENXIO);
357
+ }
358
+ #endif
359
+
360
+ return index;
361
+ }
362
+
363
+ struct in_addr getInterfaceAddress(const string& name)
364
+ {
365
+ struct in_addr addr;
366
+ addr.s_addr = INADDR_ANY;
367
+ if (name.empty())
368
+ {
369
+ return addr;
370
+ }
371
+
372
+ if (inet_pton(AF_INET, name.c_str(), &addr) > 0)
373
+ {
374
+ return addr;
375
+ }
376
+
377
+ #ifdef _WIN32
378
+ IP_ADAPTER_ADDRESSES addrs;
379
+ ULONG buflen = 0;
380
+ if (::GetAdaptersAddresses(AF_INET, 0, 0, &addrs, &buflen) == ERROR_BUFFER_OVERFLOW)
381
+ {
382
+ PIP_ADAPTER_ADDRESSES paddrs;
383
+ char* buf = new char[buflen];
384
+ paddrs = reinterpret_cast<PIP_ADAPTER_ADDRESSES>(buf);
385
+ if (::GetAdaptersAddresses(AF_INET, 0, 0, paddrs, &buflen) == NO_ERROR)
386
+ {
387
+ while (paddrs)
388
+ {
389
+ //
390
+ // Don't need to pass a wide string converter as the wide string come
391
+ // from Windows API.
392
+ //
393
+ if (wstringToString(paddrs->FriendlyName, getProcessStringConverter()) == name)
394
+ {
395
+ struct sockaddr_in addrin;
396
+ memcpy(
397
+ &addrin,
398
+ paddrs->FirstUnicastAddress->Address.lpSockaddr,
399
+ paddrs->FirstUnicastAddress->Address.iSockaddrLength);
400
+ delete[] buf;
401
+ return addrin.sin_addr;
402
+ }
403
+ paddrs = paddrs->Next;
404
+ }
405
+ }
406
+ delete[] buf;
407
+ }
408
+ throw Ice::SocketException(__FILE__, __LINE__, WSAEINVAL);
409
+ #else
410
+ ifreq if_address;
411
+ strncpy(if_address.ifr_name, name.c_str(), IFNAMSIZ - 1);
412
+ if_address.ifr_name[IFNAMSIZ - 1] = '\0';
413
+
414
+ SOCKET fd = createSocketImpl(false, AF_INET);
415
+ int rc = ioctl(fd, SIOCGIFADDR, &if_address);
416
+ closeSocketNoThrow(fd);
417
+ if (rc == SOCKET_ERROR)
418
+ {
419
+ throw Ice::SocketException(__FILE__, __LINE__, getSocketErrno());
420
+ }
421
+ return reinterpret_cast<struct sockaddr_in*>(&if_address.ifr_addr)->sin_addr;
422
+ #endif
423
+ }
424
+
425
+ int getAddressStorageSize(const Address& addr)
426
+ {
427
+ int size = 0;
428
+ if (addr.saStorage.ss_family == AF_INET)
429
+ {
430
+ size = sizeof(sockaddr_in);
431
+ }
432
+ else if (addr.saStorage.ss_family == AF_INET6)
433
+ {
434
+ size = sizeof(sockaddr_in6);
435
+ }
436
+ return size;
437
+ }
438
+
439
+ vector<Address> getLoopbackAddresses(ProtocolSupport protocol, int port = 0)
440
+ {
441
+ vector<Address> result;
442
+
443
+ Address addr;
444
+ memset(&addr.saStorage, 0, sizeof(sockaddr_storage));
445
+
446
+ //
447
+ // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
448
+ // versions don't support it).
449
+ //
450
+ if (protocol != EnableIPv4)
451
+ {
452
+ addr.saIn6.sin6_family = AF_INET6;
453
+ addr.saIn6.sin6_port = htons(port);
454
+ addr.saIn6.sin6_addr = in6addr_loopback;
455
+ result.push_back(addr);
456
+ }
457
+ if (protocol != EnableIPv6)
458
+ {
459
+ addr.saIn.sin_family = AF_INET;
460
+ addr.saIn.sin_port = htons(port);
461
+ addr.saIn.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
462
+ result.push_back(addr);
463
+ }
464
+ return result;
465
+ }
466
+ }
467
+
468
+ ReadyCallback::~ReadyCallback() = default; // Out of line to avoid weak vtable
469
+
470
+ NativeInfo::~NativeInfo() = default; // Out of line to avoid weak vtable
471
+
472
+ void
473
+ NativeInfo::setReadyCallback(const ReadyCallbackPtr& callback)
474
+ {
475
+ _readyCallback = callback;
476
+ }
477
+
478
+ #ifdef ICE_USE_IOCP
479
+
480
+ IceInternal::AsyncInfo::AsyncInfo(SocketOperation s)
481
+ {
482
+ ZeroMemory(this, sizeof(AsyncInfo));
483
+ status = s;
484
+ }
485
+
486
+ void
487
+ IceInternal::NativeInfo::initialize(HANDLE handle, ULONG_PTR key)
488
+ {
489
+ _handle = handle;
490
+ _key = key;
491
+ }
492
+
493
+ void
494
+ IceInternal::NativeInfo::completed(SocketOperation operation)
495
+ {
496
+ if (!PostQueuedCompletionStatus(_handle, 0, _key, getAsyncInfo(operation)))
497
+ {
498
+ throw Ice::SocketException(__FILE__, __LINE__, GetLastError());
499
+ }
500
+ }
501
+
502
+ #else
503
+
504
+ void
505
+ IceInternal::NativeInfo::setNewFd(SOCKET fd)
506
+ {
507
+ assert(_fd == INVALID_SOCKET); // This can only be called once, when the current socket isn't set yet.
508
+ _newFd = fd;
509
+ }
510
+
511
+ bool
512
+ IceInternal::NativeInfo::newFd()
513
+ {
514
+ if (_newFd == INVALID_SOCKET)
515
+ {
516
+ return false;
517
+ }
518
+ assert(_fd == INVALID_SOCKET);
519
+ swap(_fd, _newFd);
520
+ return true;
521
+ }
522
+
523
+ #endif
524
+
525
+ string
526
+ IceInternal::errorToStringDNS(ErrorCode error)
527
+ {
528
+ #if defined(_WIN32)
529
+ return IceInternal::errorToString(error);
530
+ #else
531
+ return gai_strerror(error);
532
+ #endif
533
+ }
534
+
535
+ vector<Address>
536
+ IceInternal::getAddresses(const string& host, int port, ProtocolSupport protocol, bool preferIPv6, bool canBlock)
537
+ {
538
+ vector<Address> result;
539
+
540
+ //
541
+ // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
542
+ // versions don't support it).
543
+ //
544
+ if (host.empty())
545
+ {
546
+ result = getLoopbackAddresses(protocol, port);
547
+ sortAddresses(result, protocol, preferIPv6);
548
+ return result;
549
+ }
550
+
551
+ Address addr;
552
+ memset(&addr.saStorage, 0, sizeof(sockaddr_storage));
553
+
554
+ struct addrinfo* info = nullptr;
555
+ int retry = 5;
556
+
557
+ struct addrinfo hints = {};
558
+ if (protocol == EnableIPv4)
559
+ {
560
+ hints.ai_family = PF_INET;
561
+ }
562
+ else if (protocol == EnableIPv6)
563
+ {
564
+ hints.ai_family = PF_INET6;
565
+ }
566
+ else
567
+ {
568
+ hints.ai_family = PF_UNSPEC;
569
+ }
570
+
571
+ if (!canBlock)
572
+ {
573
+ hints.ai_flags = AI_NUMERICHOST;
574
+ }
575
+
576
+ int rs = 0;
577
+ do
578
+ {
579
+ rs = getaddrinfo(host.c_str(), nullptr, &hints, &info);
580
+ } while (info == nullptr && rs == EAI_AGAIN && --retry >= 0);
581
+
582
+ // In theory, getaddrinfo should only return EAI_NONAME if
583
+ // AI_NUMERICHOST is specified and the host name is not a IP
584
+ // address. However on some platforms (e.g. macOS 10.4.x)
585
+ // EAI_NODATA is also returned so we also check for it.
586
+ #ifdef EAI_NODATA
587
+ if (!canBlock && (rs == EAI_NONAME || rs == EAI_NODATA))
588
+ #else
589
+ if (!canBlock && rs == EAI_NONAME)
590
+ #endif
591
+ {
592
+ return result; // Empty result indicates that a canBlock lookup is necessary.
593
+ }
594
+ else if (rs != 0)
595
+ {
596
+ throw DNSException(__FILE__, __LINE__, rs, host);
597
+ }
598
+
599
+ for (struct addrinfo* p = info; p != nullptr; p = p->ai_next)
600
+ {
601
+ memcpy(&addr.saStorage, p->ai_addr, p->ai_addrlen);
602
+ if (p->ai_family == PF_INET)
603
+ {
604
+ addr.saIn.sin_port = htons(port);
605
+ }
606
+ else if (p->ai_family == PF_INET6)
607
+ {
608
+ addr.saIn6.sin6_port = htons(port);
609
+ }
610
+
611
+ bool found = false;
612
+ for (const auto& i : result)
613
+ {
614
+ if (compareAddress(i, addr) == 0)
615
+ {
616
+ found = true;
617
+ break;
618
+ }
619
+ }
620
+ if (!found)
621
+ {
622
+ result.push_back(addr);
623
+ }
624
+ }
625
+
626
+ freeaddrinfo(info);
627
+
628
+ if (result.empty())
629
+ {
630
+ throw DNSException(__FILE__, __LINE__, 0, host);
631
+ }
632
+ sortAddresses(result, protocol, preferIPv6);
633
+ return result;
634
+ }
635
+
636
+ ProtocolSupport
637
+ IceInternal::getProtocolSupport(const Address& addr)
638
+ {
639
+ return addr.saStorage.ss_family == AF_INET ? EnableIPv4 : EnableIPv6;
640
+ }
641
+
642
+ Address
643
+ IceInternal::getAddressForServer(const string& host, int port, ProtocolSupport protocol, bool preferIPv6, bool canBlock)
644
+ {
645
+ //
646
+ // We don't use getaddrinfo when host is empty as it's not portable (some old Linux
647
+ // versions don't support it).
648
+ //
649
+ if (host.empty())
650
+ {
651
+ Address addr;
652
+ memset(&addr.saStorage, 0, sizeof(sockaddr_storage));
653
+ if (protocol != EnableIPv4)
654
+ {
655
+ addr.saIn6.sin6_family = AF_INET6;
656
+ addr.saIn6.sin6_port = htons(port);
657
+ addr.saIn6.sin6_addr = in6addr_any;
658
+ }
659
+ else
660
+ {
661
+ addr.saIn.sin_family = AF_INET;
662
+ addr.saIn.sin_port = htons(port);
663
+ addr.saIn.sin_addr.s_addr = htonl(INADDR_ANY);
664
+ }
665
+ return addr;
666
+ }
667
+ vector<Address> addrs = getAddresses(host, port, protocol, preferIPv6, canBlock);
668
+ return addrs.empty() ? Address() : addrs[0];
669
+ }
670
+
671
+ int
672
+ IceInternal::compareAddress(const Address& addr1, const Address& addr2)
673
+ {
674
+ if (addr1.saStorage.ss_family < addr2.saStorage.ss_family)
675
+ {
676
+ return -1;
677
+ }
678
+ else if (addr2.saStorage.ss_family < addr1.saStorage.ss_family)
679
+ {
680
+ return 1;
681
+ }
682
+
683
+ if (addr1.saStorage.ss_family == AF_INET)
684
+ {
685
+ if (addr1.saIn.sin_port < addr2.saIn.sin_port)
686
+ {
687
+ return -1;
688
+ }
689
+ else if (addr2.saIn.sin_port < addr1.saIn.sin_port)
690
+ {
691
+ return 1;
692
+ }
693
+
694
+ if (addr1.saIn.sin_addr.s_addr < addr2.saIn.sin_addr.s_addr)
695
+ {
696
+ return -1;
697
+ }
698
+ else if (addr2.saIn.sin_addr.s_addr < addr1.saIn.sin_addr.s_addr)
699
+ {
700
+ return 1;
701
+ }
702
+ }
703
+ else
704
+ {
705
+ if (addr1.saIn6.sin6_port < addr2.saIn6.sin6_port)
706
+ {
707
+ return -1;
708
+ }
709
+ else if (addr2.saIn6.sin6_port < addr1.saIn6.sin6_port)
710
+ {
711
+ return 1;
712
+ }
713
+
714
+ int res = memcmp(&addr1.saIn6.sin6_addr, &addr2.saIn6.sin6_addr, sizeof(in6_addr));
715
+ if (res < 0)
716
+ {
717
+ return -1;
718
+ }
719
+ else if (res > 0)
720
+ {
721
+ return 1;
722
+ }
723
+ }
724
+
725
+ return 0;
726
+ }
727
+
728
+ bool
729
+ IceInternal::isIPv6Supported()
730
+ {
731
+ SOCKET fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
732
+ if (fd == INVALID_SOCKET)
733
+ {
734
+ return false;
735
+ }
736
+ else
737
+ {
738
+ closeSocketNoThrow(fd);
739
+ return true;
740
+ }
741
+ }
742
+
743
+ SOCKET
744
+ IceInternal::createSocket(bool udp, const Address& addr) { return createSocketImpl(udp, addr.saStorage.ss_family); }
745
+ SOCKET
746
+ IceInternal::createServerSocket(bool udp, const Address& addr, ProtocolSupport protocol)
747
+ {
748
+ SOCKET fd = createSocket(udp, addr);
749
+ if (addr.saStorage.ss_family == AF_INET6 && protocol != EnableIPv4)
750
+ {
751
+ int flag = protocol == EnableIPv6 ? 1 : 0;
752
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, reinterpret_cast<char*>(&flag), int(sizeof(int))) == SOCKET_ERROR)
753
+ {
754
+ #ifdef _WIN32
755
+ if (getSocketErrno() == WSAENOPROTOOPT)
756
+ {
757
+ return fd; // Windows XP doesn't support IPV6_V6ONLY
758
+ }
759
+ #endif
760
+ closeSocketNoThrow(fd);
761
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
762
+ }
763
+ }
764
+ return fd;
765
+ }
766
+
767
+ void
768
+ IceInternal::closeSocketNoThrow(SOCKET fd)
769
+ {
770
+ #if defined(_WIN32)
771
+ int error = WSAGetLastError();
772
+ closesocket(fd);
773
+ WSASetLastError(error);
774
+ #else
775
+ int error = errno;
776
+ close(fd);
777
+ errno = error;
778
+ #endif
779
+ }
780
+
781
+ void
782
+ IceInternal::closeSocket(SOCKET fd)
783
+ {
784
+ #if defined(_WIN32)
785
+ int error = WSAGetLastError();
786
+ if (closesocket(fd) == SOCKET_ERROR)
787
+ {
788
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
789
+ }
790
+ WSASetLastError(error);
791
+ #else
792
+ int error = errno;
793
+
794
+ # if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
795
+ //
796
+ // FreeBSD returns ECONNRESET if the underlying object was
797
+ // a stream socket that was shut down by the peer before all
798
+ // pending data was delivered.
799
+ //
800
+ if (close(fd) == SOCKET_ERROR && getSocketErrno() != ECONNRESET)
801
+ # else
802
+ if (close(fd) == SOCKET_ERROR)
803
+ # endif
804
+ {
805
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
806
+ }
807
+ errno = error;
808
+ #endif
809
+ }
810
+
811
+ string
812
+ IceInternal::addrToString(const Address& addr)
813
+ {
814
+ if (isAddressValid(addr))
815
+ {
816
+ ostringstream s;
817
+ s << inetAddrToString(addr) << ':' << getPort(addr);
818
+ return s.str();
819
+ }
820
+ else
821
+ {
822
+ return "";
823
+ }
824
+ }
825
+
826
+ void
827
+ IceInternal::fdToLocalAddress(SOCKET fd, Address& addr)
828
+ {
829
+ auto len = static_cast<socklen_t>(sizeof(sockaddr_storage));
830
+ if (getsockname(fd, &addr.sa, &len) == SOCKET_ERROR)
831
+ {
832
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
833
+ }
834
+ }
835
+
836
+ bool
837
+ IceInternal::fdToRemoteAddress(SOCKET fd, Address& addr)
838
+ {
839
+ auto len = static_cast<socklen_t>(sizeof(sockaddr_storage));
840
+ if (getpeername(fd, &addr.sa, &len) == SOCKET_ERROR)
841
+ {
842
+ if (notConnected())
843
+ {
844
+ return false;
845
+ }
846
+ else
847
+ {
848
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
849
+ }
850
+ }
851
+ return true;
852
+ }
853
+
854
+ std::string
855
+ IceInternal::fdToString(SOCKET fd, const NetworkProxyPtr& proxy, const Address& target)
856
+ {
857
+ if (fd == INVALID_SOCKET)
858
+ {
859
+ return "<closed>";
860
+ }
861
+
862
+ ostringstream s;
863
+
864
+ Address remoteAddr;
865
+ bool peerConnected = fdToRemoteAddress(fd, remoteAddr);
866
+
867
+ #ifdef _WIN32
868
+ if (!peerConnected)
869
+ {
870
+ //
871
+ // The local address is only accessible with connected sockets on Windows.
872
+ //
873
+ s << "local address = <not available>";
874
+ }
875
+ else
876
+ #endif
877
+ {
878
+ Address localAddr;
879
+ fdToLocalAddress(fd, localAddr);
880
+ s << "local address = " << addrToString(localAddr);
881
+ }
882
+
883
+ if (proxy)
884
+ {
885
+ if (!peerConnected)
886
+ {
887
+ remoteAddr = proxy->getAddress();
888
+ }
889
+ s << "\n" + proxy->getName() + " proxy address = " << addrToString(remoteAddr);
890
+ s << "\nremote address = " << addrToString(target);
891
+ }
892
+ else
893
+ {
894
+ if (!peerConnected)
895
+ {
896
+ remoteAddr = target;
897
+ }
898
+ s << "\nremote address = " << addrToString(remoteAddr);
899
+ }
900
+
901
+ return s.str();
902
+ }
903
+
904
+ std::string
905
+ IceInternal::fdToString(SOCKET fd)
906
+ {
907
+ if (fd == INVALID_SOCKET)
908
+ {
909
+ return "<closed>";
910
+ }
911
+
912
+ Address localAddr;
913
+ fdToLocalAddress(fd, localAddr);
914
+
915
+ Address remoteAddr;
916
+ bool peerConnected = fdToRemoteAddress(fd, remoteAddr);
917
+
918
+ return addressesToString(localAddr, remoteAddr, peerConnected);
919
+ }
920
+
921
+ void
922
+ IceInternal::fdToAddressAndPort(SOCKET fd, string& localAddress, int& localPort, string& remoteAddress, int& remotePort)
923
+ {
924
+ if (fd == INVALID_SOCKET)
925
+ {
926
+ localAddress.clear();
927
+ remoteAddress.clear();
928
+ localPort = -1;
929
+ remotePort = -1;
930
+ return;
931
+ }
932
+
933
+ Address localAddr;
934
+ fdToLocalAddress(fd, localAddr);
935
+ addrToAddressAndPort(localAddr, localAddress, localPort);
936
+
937
+ Address remoteAddr;
938
+ if (fdToRemoteAddress(fd, remoteAddr))
939
+ {
940
+ addrToAddressAndPort(remoteAddr, remoteAddress, remotePort);
941
+ }
942
+ else
943
+ {
944
+ remoteAddress.clear();
945
+ remotePort = -1;
946
+ }
947
+ }
948
+
949
+ void
950
+ IceInternal::addrToAddressAndPort(const Address& addr, string& address, int& port)
951
+ {
952
+ address = inetAddrToString(addr);
953
+ port = getPort(addr);
954
+ }
955
+
956
+ std::string
957
+ IceInternal::addressesToString(const Address& localAddr, const Address& remoteAddr, bool peerConnected)
958
+ {
959
+ ostringstream s;
960
+ s << "local address = " << addrToString(localAddr);
961
+ if (peerConnected)
962
+ {
963
+ s << "\nremote address = " << addrToString(remoteAddr);
964
+ }
965
+ else
966
+ {
967
+ s << "\nremote address = <not connected>";
968
+ }
969
+ return s.str();
970
+ }
971
+
972
+ bool
973
+ IceInternal::isAddressValid(const Address& addr)
974
+ {
975
+ return addr.saStorage.ss_family != AF_UNSPEC;
976
+ }
977
+
978
+ vector<string>
979
+ IceInternal::getInterfacesForMulticast(const string& intf, ProtocolSupport protocolSupport)
980
+ {
981
+ bool ipv4Wildcard = false;
982
+ if (isWildcard(intf, protocolSupport, ipv4Wildcard))
983
+ {
984
+ vector<string> interfaces;
985
+ vector<Address> addrs = getLocalAddresses(ipv4Wildcard ? EnableIPv4 : protocolSupport);
986
+ for (const auto& addr : addrs)
987
+ {
988
+ string addrStr = inetAddrToString(addr);
989
+ // Suppress duplicates.
990
+ if (find(interfaces.begin(), interfaces.end(), addrStr) == interfaces.end())
991
+ {
992
+ interfaces.push_back(addrStr);
993
+ }
994
+ }
995
+ return interfaces;
996
+ }
997
+ else
998
+ {
999
+ // If the interface is not a wildcard, we just return it as is.
1000
+ return vector<string>{intf};
1001
+ }
1002
+ }
1003
+
1004
+ string
1005
+ IceInternal::inetAddrToString(const Address& ss)
1006
+ {
1007
+ int size = getAddressStorageSize(ss);
1008
+ if (size == 0)
1009
+ {
1010
+ return "";
1011
+ }
1012
+
1013
+ char namebuf[1024];
1014
+ namebuf[0] = '\0';
1015
+ getnameinfo(
1016
+ &ss.sa,
1017
+ static_cast<socklen_t>(size),
1018
+ namebuf,
1019
+ static_cast<socklen_t>(sizeof(namebuf)),
1020
+ nullptr,
1021
+ 0,
1022
+ NI_NUMERICHOST);
1023
+ return {namebuf};
1024
+ }
1025
+
1026
+ int
1027
+ IceInternal::getPort(const Address& addr)
1028
+ {
1029
+ if (addr.saStorage.ss_family == AF_INET)
1030
+ {
1031
+ return ntohs(addr.saIn.sin_port);
1032
+ }
1033
+ else if (addr.saStorage.ss_family == AF_INET6)
1034
+ {
1035
+ return ntohs(addr.saIn6.sin6_port);
1036
+ }
1037
+ else
1038
+ {
1039
+ return -1;
1040
+ }
1041
+ }
1042
+
1043
+ void
1044
+ IceInternal::setPort(Address& addr, int port)
1045
+ {
1046
+ if (addr.saStorage.ss_family == AF_INET)
1047
+ {
1048
+ addr.saIn.sin_port = htons(port);
1049
+ }
1050
+ else
1051
+ {
1052
+ assert(addr.saStorage.ss_family == AF_INET6);
1053
+ addr.saIn6.sin6_port = htons(port);
1054
+ }
1055
+ }
1056
+
1057
+ bool
1058
+ IceInternal::isMulticast(const Address& addr)
1059
+ {
1060
+ if (addr.saStorage.ss_family == AF_INET)
1061
+ {
1062
+ return IN_MULTICAST(ntohl(addr.saIn.sin_addr.s_addr));
1063
+ }
1064
+ else if (addr.saStorage.ss_family == AF_INET6)
1065
+ {
1066
+ return IN6_IS_ADDR_MULTICAST(&addr.saIn6.sin6_addr);
1067
+ }
1068
+ return false;
1069
+ }
1070
+
1071
+ void
1072
+ IceInternal::setTcpBufSize(SOCKET fd, const ProtocolInstancePtr& instance)
1073
+ {
1074
+ assert(fd != INVALID_SOCKET);
1075
+
1076
+ //
1077
+ // By default, on Windows we use a 128KB buffer size. On Unix
1078
+ // platforms, we use the system defaults.
1079
+ //
1080
+ #ifdef _WIN32
1081
+ const int dfltBufSize = 128 * 1024;
1082
+ #else
1083
+ const int dfltBufSize = 0;
1084
+ #endif
1085
+ int32_t rcvSize = instance->properties()->getPropertyAsIntWithDefault("Ice.TCP.RcvSize", dfltBufSize);
1086
+ int32_t sndSize = instance->properties()->getPropertyAsIntWithDefault("Ice.TCP.SndSize", dfltBufSize);
1087
+
1088
+ setTcpBufSize(fd, rcvSize, sndSize, instance);
1089
+ }
1090
+
1091
+ void
1092
+ IceInternal::setTcpBufSize(SOCKET fd, int rcvSize, int sndSize, const ProtocolInstancePtr& instance)
1093
+ {
1094
+ assert(fd != INVALID_SOCKET);
1095
+
1096
+ if (rcvSize > 0)
1097
+ {
1098
+ //
1099
+ // Try to set the buffer size. The kernel will silently adjust
1100
+ // the size to an acceptable value. Then read the size back to
1101
+ // get the size that was actually set.
1102
+ //
1103
+ setRecvBufferSize(fd, rcvSize);
1104
+ int size = getRecvBufferSize(fd);
1105
+ if (size > 0 && size < rcvSize)
1106
+ {
1107
+ // Warn if the size that was set is less than the requested size and
1108
+ // we have not already warned.
1109
+ BufSizeWarnInfo winfo = instance->getBufSizeWarn(TCPEndpointType);
1110
+ if (!winfo.rcvWarn || rcvSize != winfo.rcvSize)
1111
+ {
1112
+ Ice::Warning out(instance->logger());
1113
+ out << "TCP receive buffer size: requested size of " << rcvSize << " adjusted to " << size;
1114
+ instance->setRcvBufSizeWarn(TCPEndpointType, rcvSize);
1115
+ }
1116
+ }
1117
+ }
1118
+
1119
+ if (sndSize > 0)
1120
+ {
1121
+ //
1122
+ // Try to set the buffer size. The kernel will silently adjust
1123
+ // the size to an acceptable value. Then read the size back to
1124
+ // get the size that was actually set.
1125
+ //
1126
+ setSendBufferSize(fd, sndSize);
1127
+ int size = getSendBufferSize(fd);
1128
+ if (size > 0 && size < sndSize)
1129
+ {
1130
+ // Warn if the size that was set is less than the requested size and
1131
+ // we have not already warned.
1132
+ BufSizeWarnInfo winfo = instance->getBufSizeWarn(TCPEndpointType);
1133
+ if (!winfo.sndWarn || sndSize != winfo.sndSize)
1134
+ {
1135
+ Ice::Warning out(instance->logger());
1136
+ out << "TCP send buffer size: requested size of " << sndSize << " adjusted to " << size;
1137
+ instance->setSndBufSizeWarn(TCPEndpointType, sndSize);
1138
+ }
1139
+ }
1140
+ }
1141
+ }
1142
+
1143
+ void
1144
+ IceInternal::setBlock(SOCKET fd, bool block)
1145
+ {
1146
+ #ifdef _WIN32
1147
+ if (block)
1148
+ {
1149
+ unsigned long arg = 0;
1150
+ if (ioctlsocket(fd, FIONBIO, &arg) == SOCKET_ERROR)
1151
+ {
1152
+ closeSocketNoThrow(fd);
1153
+ throw SocketException(__FILE__, __LINE__, WSAGetLastError());
1154
+ }
1155
+ }
1156
+ else
1157
+ {
1158
+ unsigned long arg = 1;
1159
+ if (ioctlsocket(fd, FIONBIO, &arg) == SOCKET_ERROR)
1160
+ {
1161
+ closeSocketNoThrow(fd);
1162
+ throw SocketException(__FILE__, __LINE__, WSAGetLastError());
1163
+ }
1164
+ }
1165
+ #else
1166
+ if (block)
1167
+ {
1168
+ int flags = fcntl(fd, F_GETFL);
1169
+ flags &= ~O_NONBLOCK;
1170
+ if (fcntl(fd, F_SETFL, flags) == SOCKET_ERROR)
1171
+ {
1172
+ closeSocketNoThrow(fd);
1173
+ throw SocketException(__FILE__, __LINE__, errno);
1174
+ }
1175
+ }
1176
+ else
1177
+ {
1178
+ int flags = fcntl(fd, F_GETFL);
1179
+ flags |= O_NONBLOCK;
1180
+ if (fcntl(fd, F_SETFL, flags) == SOCKET_ERROR)
1181
+ {
1182
+ closeSocketNoThrow(fd);
1183
+ throw SocketException(__FILE__, __LINE__, errno);
1184
+ }
1185
+ }
1186
+ #endif
1187
+ }
1188
+
1189
+ void
1190
+ IceInternal::setSendBufferSize(SOCKET fd, int sz)
1191
+ {
1192
+ if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&sz), int(sizeof(int))) == SOCKET_ERROR)
1193
+ {
1194
+ closeSocketNoThrow(fd);
1195
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1196
+ }
1197
+ }
1198
+
1199
+ int
1200
+ IceInternal::getSendBufferSize(SOCKET fd)
1201
+ {
1202
+ int sz;
1203
+ socklen_t len = sizeof(sz);
1204
+ if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&sz), &len) == SOCKET_ERROR ||
1205
+ static_cast<unsigned int>(len) != sizeof(sz))
1206
+ {
1207
+ closeSocketNoThrow(fd);
1208
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1209
+ }
1210
+ return sz;
1211
+ }
1212
+
1213
+ void
1214
+ IceInternal::setRecvBufferSize(SOCKET fd, int sz)
1215
+ {
1216
+ if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char*>(&sz), int(sizeof(int))) == SOCKET_ERROR)
1217
+ {
1218
+ closeSocketNoThrow(fd);
1219
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1220
+ }
1221
+ }
1222
+
1223
+ int
1224
+ IceInternal::getRecvBufferSize(SOCKET fd)
1225
+ {
1226
+ int sz;
1227
+ socklen_t len = sizeof(sz);
1228
+ if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char*>(&sz), &len) == SOCKET_ERROR ||
1229
+ static_cast<unsigned int>(len) != sizeof(sz))
1230
+ {
1231
+ closeSocketNoThrow(fd);
1232
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1233
+ }
1234
+ return sz;
1235
+ }
1236
+
1237
+ void
1238
+ IceInternal::setMcastGroup(SOCKET fd, const Address& group, const string& intf)
1239
+ {
1240
+ vector<string> interfaces = getInterfacesForMulticast(intf, getProtocolSupport(group));
1241
+ set<int> indexes;
1242
+ for (const auto& interface : interfaces)
1243
+ {
1244
+ int rc = 0;
1245
+ if (group.saStorage.ss_family == AF_INET)
1246
+ {
1247
+ struct ip_mreq mreq;
1248
+ mreq.imr_multiaddr = group.saIn.sin_addr;
1249
+ mreq.imr_interface = getInterfaceAddress(interface);
1250
+ rc = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, reinterpret_cast<char*>(&mreq), int(sizeof(mreq)));
1251
+ }
1252
+ else
1253
+ {
1254
+ int index = getInterfaceIndex(interface);
1255
+ if (indexes.find(index) == indexes.end()) // Don't join twice the same interface (if it has multiple IPs)
1256
+ {
1257
+ indexes.insert(index);
1258
+ struct ipv6_mreq mreq;
1259
+ mreq.ipv6mr_multiaddr = group.saIn6.sin6_addr;
1260
+ mreq.ipv6mr_interface = static_cast<unsigned int>(index);
1261
+ rc = setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, reinterpret_cast<char*>(&mreq), int(sizeof(mreq)));
1262
+ }
1263
+ }
1264
+ if (rc == SOCKET_ERROR)
1265
+ {
1266
+ closeSocketNoThrow(fd);
1267
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1268
+ }
1269
+ }
1270
+ }
1271
+
1272
+ void
1273
+ IceInternal::setMcastInterface(SOCKET fd, const string& intf, const Address& addr)
1274
+ {
1275
+ int rc;
1276
+ if (addr.saStorage.ss_family == AF_INET)
1277
+ {
1278
+ struct in_addr iface = getInterfaceAddress(intf);
1279
+ rc = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, reinterpret_cast<char*>(&iface), int(sizeof(iface)));
1280
+ }
1281
+ else
1282
+ {
1283
+ int interfaceNum = getInterfaceIndex(intf);
1284
+ rc = setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, reinterpret_cast<char*>(&interfaceNum), int(sizeof(int)));
1285
+ }
1286
+ if (rc == SOCKET_ERROR)
1287
+ {
1288
+ closeSocketNoThrow(fd);
1289
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1290
+ }
1291
+ }
1292
+
1293
+ void
1294
+ IceInternal::setMcastTtl(SOCKET fd, int ttl, const Address& addr)
1295
+ {
1296
+ int rc;
1297
+ if (addr.saStorage.ss_family == AF_INET)
1298
+ {
1299
+ rc = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, reinterpret_cast<char*>(&ttl), int(sizeof(int)));
1300
+ }
1301
+ else
1302
+ {
1303
+ rc = setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, reinterpret_cast<char*>(&ttl), int(sizeof(int)));
1304
+ }
1305
+ if (rc == SOCKET_ERROR)
1306
+ {
1307
+ closeSocketNoThrow(fd);
1308
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1309
+ }
1310
+ }
1311
+
1312
+ void
1313
+ IceInternal::setReuseAddress(SOCKET fd, bool reuse)
1314
+ {
1315
+ int flag = reuse ? 1 : 0;
1316
+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<char*>(&flag), int(sizeof(int))) == SOCKET_ERROR)
1317
+ {
1318
+ closeSocketNoThrow(fd);
1319
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1320
+ }
1321
+ }
1322
+
1323
+ Address
1324
+ IceInternal::doBind(SOCKET fd, const Address& addr, const string&)
1325
+ {
1326
+ int size = getAddressStorageSize(addr);
1327
+ assert(size != 0);
1328
+
1329
+ if (::bind(fd, &addr.sa, static_cast<socklen_t>(size)) == SOCKET_ERROR)
1330
+ {
1331
+ closeSocketNoThrow(fd);
1332
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1333
+ }
1334
+
1335
+ Address local;
1336
+ auto len = static_cast<socklen_t>(sizeof(sockaddr_storage));
1337
+ [[maybe_unused]] int ret = getsockname(fd, &local.sa, &len);
1338
+ assert(ret != SOCKET_ERROR);
1339
+ return local;
1340
+ }
1341
+
1342
+ Address
1343
+ IceInternal::getNumericAddress(const std::string& address)
1344
+ {
1345
+ vector<Address> addrs = getAddresses(address, 0, EnableBoth, false, false);
1346
+ if (addrs.empty())
1347
+ {
1348
+ return {};
1349
+ }
1350
+ else
1351
+ {
1352
+ return addrs[0];
1353
+ }
1354
+ }
1355
+
1356
+ string
1357
+ IceInternal::normalizeIPv6Address(const string& host)
1358
+ {
1359
+ if (host.find(':') != string::npos)
1360
+ {
1361
+ struct in6_addr result;
1362
+ if (inet_pton(AF_INET6, host.c_str(), &result) == 1)
1363
+ {
1364
+ // Normalize the address
1365
+ char buf[INET6_ADDRSTRLEN];
1366
+ if (inet_ntop(AF_INET6, &result, buf, sizeof(buf)) != nullptr)
1367
+ {
1368
+ return string{buf};
1369
+ }
1370
+ // else conversion to string failed, keep host as is
1371
+ }
1372
+ // else it's not a valid IPv6 address keep host as is
1373
+ }
1374
+ return host;
1375
+ }
1376
+
1377
+ SyscallException::ErrorCode
1378
+ IceInternal::getSocketErrno()
1379
+ {
1380
+ #if defined(_WIN32)
1381
+ // We standardize on DWORD aka unsigned long for all system error codes on Windows.
1382
+ return static_cast<SyscallException::ErrorCode>(WSAGetLastError());
1383
+ #else
1384
+ return errno;
1385
+ #endif
1386
+ }
1387
+
1388
+ bool
1389
+ IceInternal::interrupted()
1390
+ {
1391
+ #ifdef _WIN32
1392
+ return WSAGetLastError() == WSAEINTR;
1393
+ #else
1394
+ # ifdef EPROTO
1395
+ return errno == EINTR || errno == EPROTO;
1396
+ # else
1397
+ return errno == EINTR;
1398
+ # endif
1399
+ #endif
1400
+ }
1401
+
1402
+ bool
1403
+ IceInternal::acceptInterrupted()
1404
+ {
1405
+ if (interrupted())
1406
+ {
1407
+ return true;
1408
+ }
1409
+
1410
+ #ifdef _WIN32
1411
+ int error = WSAGetLastError();
1412
+ return error == WSAECONNABORTED || error == WSAECONNRESET || error == WSAETIMEDOUT;
1413
+ #else
1414
+ return errno == ECONNABORTED || errno == ECONNRESET || errno == ETIMEDOUT;
1415
+ #endif
1416
+ }
1417
+
1418
+ bool
1419
+ IceInternal::noBuffers()
1420
+ {
1421
+ #ifdef _WIN32
1422
+ int error = WSAGetLastError();
1423
+ return error == WSAENOBUFS || error == WSAEFAULT;
1424
+ #else
1425
+ return errno == ENOBUFS;
1426
+ #endif
1427
+ }
1428
+
1429
+ bool
1430
+ IceInternal::wouldBlock()
1431
+ {
1432
+ #ifdef _WIN32
1433
+ int error = WSAGetLastError();
1434
+ return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
1435
+ #else
1436
+ return errno == EAGAIN || errno == EWOULDBLOCK;
1437
+ #endif
1438
+ }
1439
+
1440
+ bool
1441
+ IceInternal::connectFailed()
1442
+ {
1443
+ #if defined(_WIN32)
1444
+ int error = WSAGetLastError();
1445
+ return error == WSAECONNREFUSED || error == WSAETIMEDOUT || error == WSAENETUNREACH || error == WSAEHOSTUNREACH ||
1446
+ error == WSAECONNRESET || error == WSAESHUTDOWN || error == WSAECONNABORTED || error == ERROR_SEM_TIMEOUT ||
1447
+ error == ERROR_NETNAME_DELETED;
1448
+ #else
1449
+ return errno == ECONNREFUSED || errno == ETIMEDOUT || errno == ENETUNREACH || errno == EHOSTUNREACH ||
1450
+ errno == ECONNRESET || errno == ESHUTDOWN || errno == ECONNABORTED;
1451
+ #endif
1452
+ }
1453
+
1454
+ bool
1455
+ IceInternal::connectionRefused()
1456
+ {
1457
+ #if defined(_WIN32)
1458
+ int error = WSAGetLastError();
1459
+ return error == WSAECONNREFUSED || error == ERROR_CONNECTION_REFUSED;
1460
+ #else
1461
+ return errno == ECONNREFUSED;
1462
+ #endif
1463
+ }
1464
+
1465
+ bool
1466
+ IceInternal::connectionLost()
1467
+ {
1468
+ #ifdef _WIN32
1469
+ int error = WSAGetLastError();
1470
+ return error == WSAECONNRESET || error == WSAESHUTDOWN || error == WSAENOTCONN ||
1471
+ # ifdef ICE_USE_IOCP
1472
+ error == ERROR_NETNAME_DELETED ||
1473
+ # endif
1474
+ error == WSAECONNABORTED;
1475
+ #else
1476
+ return errno == ECONNRESET || errno == ENOTCONN || errno == ESHUTDOWN || errno == ECONNABORTED || errno == EPIPE;
1477
+ #endif
1478
+ }
1479
+
1480
+ bool
1481
+ IceInternal::connectInProgress()
1482
+ {
1483
+ #ifdef _WIN32
1484
+ int error = WSAGetLastError();
1485
+ return error == WSAEWOULDBLOCK || error == WSA_IO_PENDING || error == ERROR_IO_PENDING;
1486
+ #else
1487
+ return errno == EINPROGRESS;
1488
+ #endif
1489
+ }
1490
+
1491
+ bool
1492
+ IceInternal::notConnected()
1493
+ {
1494
+ #ifdef _WIN32
1495
+ return WSAGetLastError() == WSAENOTCONN;
1496
+ #elif defined(__APPLE__) || defined(__FreeBSD__)
1497
+ return errno == ENOTCONN || errno == EINVAL;
1498
+ #else
1499
+ return errno == ENOTCONN;
1500
+ #endif
1501
+ }
1502
+
1503
+ bool
1504
+ IceInternal::recvTruncated()
1505
+ {
1506
+ #ifdef _WIN32
1507
+ int err = WSAGetLastError();
1508
+ return err == WSAEMSGSIZE || err == ERROR_MORE_DATA;
1509
+ #else
1510
+ // We don't get an error under Linux if a datagram is truncated.
1511
+ return false;
1512
+ #endif
1513
+ }
1514
+
1515
+ void
1516
+ IceInternal::doListen(SOCKET fd, int backlog)
1517
+ {
1518
+ repeatListen:
1519
+ if (::listen(fd, backlog) == SOCKET_ERROR)
1520
+ {
1521
+ if (interrupted())
1522
+ {
1523
+ goto repeatListen;
1524
+ }
1525
+
1526
+ closeSocketNoThrow(fd);
1527
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1528
+ }
1529
+ }
1530
+
1531
+ bool
1532
+ IceInternal::doConnect(SOCKET fd, const Address& addr, const Address& sourceAddr)
1533
+ {
1534
+ if (isAddressValid(sourceAddr))
1535
+ {
1536
+ doBind(fd, sourceAddr);
1537
+ }
1538
+
1539
+ repeatConnect:
1540
+ int size = getAddressStorageSize(addr);
1541
+ assert(size != 0);
1542
+
1543
+ if (::connect(fd, &addr.sa, static_cast<socklen_t>(size)) == SOCKET_ERROR)
1544
+ {
1545
+ if (interrupted())
1546
+ {
1547
+ goto repeatConnect;
1548
+ }
1549
+
1550
+ if (connectInProgress())
1551
+ {
1552
+ return false;
1553
+ }
1554
+
1555
+ closeSocketNoThrow(fd);
1556
+ if (connectionRefused())
1557
+ {
1558
+ throw ConnectionRefusedException{__FILE__, __LINE__, addrToString(addr)};
1559
+ }
1560
+ else if (connectFailed())
1561
+ {
1562
+ throw ConnectFailedException(__FILE__, __LINE__, getSocketErrno(), addrToString(addr));
1563
+ }
1564
+ else
1565
+ {
1566
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1567
+ }
1568
+ }
1569
+
1570
+ #if defined(__linux__)
1571
+ //
1572
+ // Prevent self connect (self connect happens on Linux when a client tries to connect to
1573
+ // a server which was just deactivated if the client socket re-uses the same ephemeral
1574
+ // port as the server).
1575
+ //
1576
+ Address localAddr;
1577
+ try
1578
+ {
1579
+ fdToLocalAddress(fd, localAddr);
1580
+ if (compareAddress(addr, localAddr) == 0)
1581
+ {
1582
+ throw ConnectionRefusedException{__FILE__, __LINE__, addrToString(addr)};
1583
+ }
1584
+ }
1585
+ catch (const LocalException&)
1586
+ {
1587
+ closeSocketNoThrow(fd);
1588
+ throw;
1589
+ }
1590
+ #endif
1591
+ return true;
1592
+ }
1593
+
1594
+ void
1595
+ IceInternal::doFinishConnect(SOCKET fd)
1596
+ {
1597
+ //
1598
+ // Note: we don't close the socket if there's an exception. It's the responsibility
1599
+ // of the caller to do so.
1600
+ //
1601
+
1602
+ //
1603
+ // Strange windows bug: The following call to Sleep() is
1604
+ // necessary, otherwise no error is reported through
1605
+ // getsockopt.
1606
+ //
1607
+ #if defined(_WIN32)
1608
+ Sleep(0);
1609
+ #endif
1610
+
1611
+ int val;
1612
+ auto len = static_cast<socklen_t>(sizeof(int));
1613
+ if (getsockopt(fd, SOL_SOCKET, SO_ERROR, reinterpret_cast<char*>(&val), &len) == SOCKET_ERROR)
1614
+ {
1615
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1616
+ }
1617
+
1618
+ if (val > 0)
1619
+ {
1620
+ #if defined(_WIN32)
1621
+ WSASetLastError(val);
1622
+ #else
1623
+ errno = val;
1624
+ #endif
1625
+ if (connectionRefused())
1626
+ {
1627
+ throw ConnectionRefusedException{__FILE__, __LINE__};
1628
+ }
1629
+ else if (connectFailed())
1630
+ {
1631
+ throw ConnectFailedException(__FILE__, __LINE__, getSocketErrno());
1632
+ }
1633
+ else
1634
+ {
1635
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1636
+ }
1637
+ }
1638
+
1639
+ #if defined(__linux__)
1640
+ //
1641
+ // Prevent self connect (self connect happens on Linux when a client tries to connect to
1642
+ // a server which was just deactivated if the client socket re-uses the same ephemeral
1643
+ // port as the server).
1644
+ //
1645
+ Address localAddr;
1646
+ fdToLocalAddress(fd, localAddr);
1647
+ Address remoteAddr;
1648
+ if (fdToRemoteAddress(fd, remoteAddr) && compareAddress(remoteAddr, localAddr) == 0)
1649
+ {
1650
+ throw ConnectionRefusedException{__FILE__, __LINE__, addrToString(remoteAddr)};
1651
+ }
1652
+ #endif
1653
+ }
1654
+
1655
+ SOCKET
1656
+ IceInternal::doAccept(SOCKET fd)
1657
+ {
1658
+ #ifdef _WIN32
1659
+ SOCKET ret;
1660
+ #else
1661
+ int ret;
1662
+ #endif
1663
+
1664
+ repeatAccept:
1665
+ if ((ret = ::accept(fd, nullptr, nullptr)) == INVALID_SOCKET)
1666
+ {
1667
+ if (acceptInterrupted())
1668
+ {
1669
+ goto repeatAccept;
1670
+ }
1671
+
1672
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1673
+ }
1674
+
1675
+ setTcpNoDelay(ret);
1676
+ setKeepAlive(ret);
1677
+ return ret;
1678
+ }
1679
+
1680
+ void
1681
+ IceInternal::createPipe(SOCKET fds[2])
1682
+ {
1683
+ #ifdef _WIN32
1684
+
1685
+ SOCKET fd = createSocketImpl(false, AF_INET);
1686
+ setBlock(fd, true);
1687
+
1688
+ Address addr;
1689
+ memset(&addr.saStorage, 0, sizeof(sockaddr_storage));
1690
+
1691
+ addr.saIn.sin_family = AF_INET;
1692
+ addr.saIn.sin_port = htons(0);
1693
+ addr.saIn.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
1694
+
1695
+ addr = doBind(fd, addr);
1696
+ doListen(fd, 1);
1697
+
1698
+ try
1699
+ {
1700
+ fds[0] = createSocketImpl(false, AF_INET);
1701
+ }
1702
+ catch (...)
1703
+ {
1704
+ ::closesocket(fd);
1705
+ throw;
1706
+ }
1707
+
1708
+ try
1709
+ {
1710
+ setBlock(fds[0], true);
1711
+ [[maybe_unused]] bool connected = doConnect(fds[0], addr, Address());
1712
+ assert(connected);
1713
+ }
1714
+ catch (...)
1715
+ {
1716
+ // fds[0] is closed by doConnect
1717
+ ::closesocket(fd);
1718
+ throw;
1719
+ }
1720
+
1721
+ try
1722
+ {
1723
+ fds[1] = doAccept(fd);
1724
+ }
1725
+ catch (...)
1726
+ {
1727
+ ::closesocket(fds[0]);
1728
+ ::closesocket(fd);
1729
+ throw;
1730
+ }
1731
+
1732
+ ::closesocket(fd);
1733
+
1734
+ try
1735
+ {
1736
+ setBlock(fds[1], true);
1737
+ }
1738
+ catch (...)
1739
+ {
1740
+ ::closesocket(fds[0]);
1741
+ // fds[1] is closed by setBlock
1742
+ throw;
1743
+ }
1744
+
1745
+ #else
1746
+
1747
+ if (::pipe(fds) != 0)
1748
+ {
1749
+ throw SyscallException{__FILE__, __LINE__, "pipe failed", errno};
1750
+ }
1751
+
1752
+ try
1753
+ {
1754
+ setBlock(fds[0], true);
1755
+ }
1756
+ catch (...)
1757
+ {
1758
+ // fds[0] is closed by setBlock
1759
+ closeSocketNoThrow(fds[1]);
1760
+ throw;
1761
+ }
1762
+
1763
+ try
1764
+ {
1765
+ setBlock(fds[1], true);
1766
+ }
1767
+ catch (...)
1768
+ {
1769
+ closeSocketNoThrow(fds[0]);
1770
+ // fds[1] is closed by setBlock
1771
+ throw;
1772
+ }
1773
+
1774
+ #endif
1775
+ }
1776
+
1777
+ #if defined(ICE_USE_IOCP)
1778
+ void
1779
+ IceInternal::doConnectAsync(SOCKET fd, const Address& addr, const Address& sourceAddr, AsyncInfo& info)
1780
+ {
1781
+ //
1782
+ // NOTE: It's the caller's responsability to close the socket upon
1783
+ // failure to connect. The socket isn't closed by this method.
1784
+ //
1785
+ Address bindAddr;
1786
+ if (isAddressValid(sourceAddr))
1787
+ {
1788
+ bindAddr = sourceAddr;
1789
+ }
1790
+ else
1791
+ {
1792
+ memset(&bindAddr.saStorage, 0, sizeof(sockaddr_storage));
1793
+ if (addr.saStorage.ss_family == AF_INET)
1794
+ {
1795
+ bindAddr.saIn.sin_family = AF_INET;
1796
+ bindAddr.saIn.sin_port = htons(0);
1797
+ bindAddr.saIn.sin_addr.s_addr = htonl(INADDR_ANY);
1798
+ }
1799
+ else if (addr.saStorage.ss_family == AF_INET6)
1800
+ {
1801
+ bindAddr.saIn6.sin6_family = AF_INET6;
1802
+ bindAddr.saIn6.sin6_port = htons(0);
1803
+ bindAddr.saIn6.sin6_addr = in6addr_any;
1804
+ }
1805
+ }
1806
+
1807
+ int size = getAddressStorageSize(bindAddr);
1808
+ assert(size != 0);
1809
+
1810
+ if (::bind(fd, &bindAddr.sa, size) == SOCKET_ERROR)
1811
+ {
1812
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1813
+ }
1814
+
1815
+ LPFN_CONNECTEX ConnectEx = nullptr; // a pointer to the 'ConnectEx()' function
1816
+ GUID GuidConnectEx = WSAID_CONNECTEX; // The Guid
1817
+ DWORD dwBytes;
1818
+ if (WSAIoctl(
1819
+ fd,
1820
+ SIO_GET_EXTENSION_FUNCTION_POINTER,
1821
+ &GuidConnectEx,
1822
+ sizeof(GuidConnectEx),
1823
+ &ConnectEx,
1824
+ sizeof(ConnectEx),
1825
+ &dwBytes,
1826
+ nullptr,
1827
+ nullptr) == SOCKET_ERROR)
1828
+ {
1829
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1830
+ }
1831
+
1832
+ if (!ConnectEx(fd, &addr.sa, size, 0, 0, 0, &info))
1833
+ {
1834
+ if (!connectInProgress())
1835
+ {
1836
+ if (connectionRefused())
1837
+ {
1838
+ throw ConnectionRefusedException{__FILE__, __LINE__, addrToString(addr)};
1839
+ }
1840
+ else if (connectFailed())
1841
+ {
1842
+ throw ConnectFailedException(__FILE__, __LINE__, getSocketErrno(), addrToString(addr));
1843
+ }
1844
+ else
1845
+ {
1846
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1847
+ }
1848
+ }
1849
+ }
1850
+ }
1851
+
1852
+ void
1853
+ IceInternal::doFinishConnectAsync(SOCKET fd, AsyncInfo& info)
1854
+ {
1855
+ //
1856
+ // NOTE: It's the caller's responsibility to close the socket upon
1857
+ // failure to connect. The socket isn't closed by this method.
1858
+ //
1859
+
1860
+ if (info.error != ERROR_SUCCESS)
1861
+ {
1862
+ WSASetLastError(info.error);
1863
+ if (connectionRefused())
1864
+ {
1865
+ throw ConnectionRefusedException{__FILE__, __LINE__};
1866
+ }
1867
+ else if (connectFailed())
1868
+ {
1869
+ throw ConnectFailedException(__FILE__, __LINE__, getSocketErrno());
1870
+ }
1871
+ else
1872
+ {
1873
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1874
+ }
1875
+ }
1876
+
1877
+ if (setsockopt(fd, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, nullptr, 0) == SOCKET_ERROR)
1878
+ {
1879
+ throw SocketException(__FILE__, __LINE__, getSocketErrno());
1880
+ }
1881
+ }
1882
+ #endif
1883
+
1884
+ bool
1885
+ IceInternal::isIpAddress(const string& name)
1886
+ {
1887
+ in_addr addr;
1888
+ in6_addr addr6;
1889
+
1890
+ return inet_pton(AF_INET, name.c_str(), &addr) > 0 || inet_pton(AF_INET6, name.c_str(), &addr6) > 0;
1891
+ }
1892
+
1893
+ bool
1894
+ IceInternal::isLoopbackOrMulticastAddress(const string& name)
1895
+ {
1896
+ if (name.empty())
1897
+ {
1898
+ return false;
1899
+ }
1900
+ else
1901
+ {
1902
+ in_addr addr;
1903
+ in6_addr addr6;
1904
+ if (inet_pton(AF_INET, name.c_str(), &addr) > 0)
1905
+ {
1906
+ // It's an IPv4 address
1907
+ return addr.s_addr == htonl(INADDR_LOOPBACK) || IN_MULTICAST(ntohl(addr.s_addr));
1908
+ }
1909
+ else if (inet_pton(AF_INET6, name.c_str(), &addr6) > 0)
1910
+ {
1911
+ // It's an IPv6 address
1912
+ return IN6_IS_ADDR_LOOPBACK(&addr6) || IN6_IS_ADDR_MULTICAST(&addr6);
1913
+ }
1914
+ return false;
1915
+ }
1916
+ }
1917
+
1918
+ string
1919
+ IceInternal::getHostName()
1920
+ {
1921
+ char name[256];
1922
+ if (gethostname(name, sizeof(name)) != 0)
1923
+ {
1924
+ throw SocketException{__FILE__, __LINE__, getSocketErrno()};
1925
+ }
1926
+ return name;
1927
+ }