zeroc-ice 3.7.10 → 3.7.11

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