zeroc-ice 3.7.1 → 3.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (677) hide show
  1. checksums.yaml +4 -4
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -6
  4. data/ext/Communicator.cpp +4 -9
  5. data/ext/Communicator.h +1 -6
  6. data/ext/Config.h +18 -6
  7. data/ext/Connection.cpp +1 -10
  8. data/ext/Connection.h +1 -6
  9. data/ext/Endpoint.cpp +1 -10
  10. data/ext/Endpoint.h +1 -6
  11. data/ext/ImplicitContext.cpp +1 -6
  12. data/ext/ImplicitContext.h +1 -6
  13. data/ext/Init.cpp +1 -6
  14. data/ext/Logger.cpp +1 -6
  15. data/ext/Logger.h +1 -6
  16. data/ext/Operation.cpp +1 -6
  17. data/ext/Operation.h +1 -6
  18. data/ext/Properties.cpp +2 -7
  19. data/ext/Properties.h +1 -6
  20. data/ext/Proxy.cpp +5 -12
  21. data/ext/Proxy.h +1 -6
  22. data/ext/Slice.cpp +3 -18
  23. data/ext/Slice.h +1 -6
  24. data/ext/Types.cpp +11 -16
  25. data/ext/Types.h +1 -6
  26. data/ext/Util.cpp +45 -28
  27. data/ext/Util.h +62 -25
  28. data/ext/ValueFactoryManager.cpp +1 -6
  29. data/ext/ValueFactoryManager.h +1 -6
  30. data/ext/extconf.rb +5 -3
  31. data/ext/ice/cpp/include/Ice/Application.h +1 -6
  32. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -6
  33. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -6
  34. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +1 -6
  35. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -6
  36. data/ext/ice/cpp/include/Ice/Buffer.h +1 -6
  37. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -6
  38. data/ext/ice/cpp/include/Ice/Comparable.h +1 -6
  39. data/ext/ice/cpp/include/Ice/Config.h +1 -6
  40. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -6
  41. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -6
  42. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +1 -6
  43. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +1 -6
  44. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -6
  45. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -6
  46. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -6
  47. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -6
  48. data/ext/ice/cpp/include/Ice/Exception.h +1 -6
  49. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +3 -16
  50. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -6
  51. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -6
  52. data/ext/ice/cpp/include/Ice/Format.h +1 -6
  53. data/ext/ice/cpp/include/Ice/Functional.h +2 -7
  54. data/ext/ice/cpp/include/Ice/GCObject.h +1 -6
  55. data/ext/ice/cpp/include/Ice/Handle.h +1 -6
  56. data/ext/ice/cpp/include/Ice/Ice.h +1 -6
  57. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +6 -13
  58. data/ext/ice/cpp/include/Ice/Incoming.h +13 -8
  59. data/ext/ice/cpp/include/Ice/IncomingAsync.h +11 -6
  60. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -6
  61. data/ext/ice/cpp/include/Ice/Initialize.h +12 -6
  62. data/ext/ice/cpp/include/Ice/InputStream.h +2 -7
  63. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -6
  64. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +1 -6
  65. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -6
  66. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -6
  67. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -6
  68. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +9 -7
  69. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -6
  70. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +16 -7
  71. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -6
  72. data/ext/ice/cpp/include/Ice/Object.h +1 -6
  73. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -6
  74. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -6
  75. data/ext/ice/cpp/include/Ice/Optional.h +9 -6
  76. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +2 -7
  77. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -6
  78. data/ext/ice/cpp/include/Ice/OutputStream.h +1 -6
  79. data/ext/ice/cpp/include/Ice/Protocol.h +1 -6
  80. data/ext/ice/cpp/include/Ice/Proxy.h +2 -9
  81. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -6
  82. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -6
  83. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -6
  84. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -6
  85. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +1 -6
  86. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -6
  87. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -6
  88. data/ext/ice/cpp/include/Ice/SHA1.h +1 -6
  89. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -6
  90. data/ext/ice/cpp/include/Ice/Service.h +1 -6
  91. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -6
  92. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  93. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -6
  94. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -6
  95. data/ext/ice/cpp/include/Ice/StringConverter.h +1 -6
  96. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -6
  97. data/ext/ice/cpp/include/Ice/UUID.h +1 -6
  98. data/ext/ice/cpp/include/Ice/UniquePtr.h +1 -6
  99. data/ext/ice/cpp/include/Ice/UniqueRef.h +1 -6
  100. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -6
  101. data/ext/ice/cpp/include/Ice/Value.h +1 -6
  102. data/ext/ice/cpp/include/Ice/ValueF.h +1 -6
  103. data/ext/ice/cpp/include/IceSSL/Config.h +1 -6
  104. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -6
  105. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +1 -6
  106. data/ext/ice/cpp/include/IceSSL/Plugin.h +1 -6
  107. data/ext/ice/cpp/include/IceSSL/SChannel.h +5 -6
  108. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +5 -6
  109. data/ext/ice/cpp/include/IceSSL/UWP.h +1 -6
  110. data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -6
  111. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -6
  112. data/ext/ice/cpp/include/IceUtil/Config.h +19 -16
  113. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +1 -6
  114. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -6
  115. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +26 -38
  116. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +5 -11
  117. data/ext/ice/cpp/include/IceUtil/Exception.h +130 -11
  118. data/ext/ice/cpp/include/IceUtil/FileUtil.h +1 -6
  119. data/ext/ice/cpp/include/IceUtil/Functional.h +5 -6
  120. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -6
  121. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -6
  122. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -6
  123. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -6
  124. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -6
  125. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -6
  126. data/ext/ice/cpp/include/IceUtil/Mutex.h +2 -9
  127. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -6
  128. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -6
  129. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -6
  130. data/ext/ice/cpp/include/IceUtil/Optional.h +1 -6
  131. data/ext/ice/cpp/include/IceUtil/Options.h +1 -6
  132. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +1 -6
  133. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -6
  134. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +8 -6
  135. data/ext/ice/cpp/include/IceUtil/Random.h +37 -6
  136. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -6
  137. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +4 -9
  138. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +2 -7
  139. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -6
  140. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -6
  141. data/ext/ice/cpp/include/IceUtil/StopWatch.h +1 -6
  142. data/ext/ice/cpp/include/IceUtil/StringConverter.h +1 -6
  143. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -6
  144. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -6
  145. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -6
  146. data/ext/ice/cpp/include/IceUtil/Time.h +1 -6
  147. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -6
  148. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -6
  149. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -6
  150. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +11 -16
  151. data/ext/ice/cpp/include/generated/Ice/Communicator.h +26 -31
  152. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +3 -8
  153. data/ext/ice/cpp/include/generated/Ice/Connection.h +5 -10
  154. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +3 -8
  155. data/ext/ice/cpp/include/generated/Ice/Current.h +33 -38
  156. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +3 -8
  157. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +4 -9
  158. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +7 -12
  159. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +4 -9
  160. data/ext/ice/cpp/include/generated/Ice/Identity.h +5 -10
  161. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +21 -26
  162. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +3 -8
  163. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +3 -8
  164. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +3 -8
  165. data/ext/ice/cpp/include/generated/Ice/LocalException.h +51 -56
  166. data/ext/ice/cpp/include/generated/Ice/Locator.h +61 -21
  167. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +7 -12
  168. data/ext/ice/cpp/include/generated/Ice/Logger.h +3 -8
  169. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +3 -8
  170. data/ext/ice/cpp/include/generated/Ice/Metrics.h +33 -40
  171. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +13 -18
  172. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +3 -8
  173. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +9 -14
  174. data/ext/ice/cpp/include/generated/Ice/Plugin.h +5 -10
  175. data/ext/ice/cpp/include/generated/Ice/PluginF.h +3 -8
  176. data/ext/ice/cpp/include/generated/Ice/Process.h +7 -12
  177. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +5 -10
  178. data/ext/ice/cpp/include/generated/Ice/Properties.h +15 -20
  179. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +8 -13
  180. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +5 -10
  181. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +13 -18
  182. data/ext/ice/cpp/include/generated/Ice/Router.h +14 -19
  183. data/ext/ice/cpp/include/generated/Ice/RouterF.h +5 -10
  184. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +31 -36
  185. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +3 -8
  186. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +3 -8
  187. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +9 -14
  188. data/ext/ice/cpp/include/generated/Ice/Version.h +3 -8
  189. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +3 -8
  190. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +3 -8
  191. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +3 -8
  192. data/ext/ice/cpp/src/Ice/ACM.cpp +14 -16
  193. data/ext/ice/cpp/src/Ice/ACM.h +1 -6
  194. data/ext/ice/cpp/src/Ice/ACMF.h +1 -6
  195. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -6
  196. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -6
  197. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -6
  198. data/ext/ice/cpp/src/Ice/ArgVector.cpp +6 -11
  199. data/ext/ice/cpp/src/Ice/ArgVector.h +1 -6
  200. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -7
  201. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -6
  202. data/ext/ice/cpp/src/Ice/Base64.h +1 -6
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -6
  204. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -6
  205. data/ext/ice/cpp/src/Ice/Buffer.cpp +1 -6
  206. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -8
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +2 -8
  208. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -6
  209. data/ext/ice/cpp/src/Ice/Communicator.cpp +3 -8
  210. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -8
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +4 -10
  212. data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -7
  213. data/ext/ice/cpp/src/Ice/Cond.cpp +1 -6
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +1 -6
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +5 -10
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -6
  217. data/ext/ice/cpp/src/Ice/Connection.cpp +3 -8
  218. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -8
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +146 -36
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +4 -6
  221. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +1 -6
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3 -8
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +1 -6
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -6
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +2 -7
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -6
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -6
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -6
  229. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +1 -6
  230. data/ext/ice/cpp/src/Ice/Current.cpp +3 -8
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -6
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -6
  233. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -6
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -6
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -6
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +3 -8
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -8
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -6
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -6
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -6
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -6
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -6
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -6
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -6
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +1 -6
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -6
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -8
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -6
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -6
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -6
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +3 -8
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -8
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -6
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -6
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +2 -7
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -6
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -6
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +2 -30
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +1 -6
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -6
  262. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +1 -6
  263. data/ext/ice/cpp/src/Ice/Identity.cpp +3 -8
  264. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +3 -8
  265. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -8
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -7
  267. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -6
  268. data/ext/ice/cpp/src/Ice/Incoming.cpp +9 -13
  269. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -6
  270. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -6
  271. data/ext/ice/cpp/src/Ice/Initialize.cpp +1 -7
  272. data/ext/ice/cpp/src/Ice/InputStream.cpp +7 -54
  273. data/ext/ice/cpp/src/Ice/Instance.cpp +30 -8
  274. data/ext/ice/cpp/src/Ice/Instance.h +1 -6
  275. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +3 -8
  276. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -8
  277. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +2 -7
  278. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -6
  279. data/ext/ice/cpp/src/Ice/LocalException.cpp +3 -8
  280. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -6
  281. data/ext/ice/cpp/src/Ice/Locator.cpp +17 -22
  282. data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -8
  283. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +25 -22
  284. data/ext/ice/cpp/src/Ice/LocatorInfo.h +3 -8
  285. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -6
  286. data/ext/ice/cpp/src/Ice/Logger.cpp +3 -8
  287. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +7 -12
  288. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -6
  289. data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -8
  290. data/ext/ice/cpp/src/Ice/LoggerI.cpp +7 -12
  291. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -6
  292. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -6
  293. data/ext/ice/cpp/src/Ice/Metrics.cpp +3 -8
  294. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +9 -9
  295. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -6
  296. data/ext/ice/cpp/src/Ice/Network.cpp +46 -29
  297. data/ext/ice/cpp/src/Ice/Network.h +3 -8
  298. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -6
  299. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +2 -8
  300. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -6
  301. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -6
  302. data/ext/ice/cpp/src/Ice/Object.cpp +1 -7
  303. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +3 -8
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -8
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +1 -6
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -6
  307. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +1 -6
  308. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +9 -6
  309. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +1 -6
  310. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +3 -8
  311. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -6
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +5 -10
  313. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -6
  314. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +5 -8
  315. data/ext/ice/cpp/src/Ice/OutputStream.cpp +5 -37
  316. data/ext/ice/cpp/src/Ice/Plugin.cpp +3 -8
  317. data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -8
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +1 -6
  319. data/ext/ice/cpp/src/Ice/PluginManagerI.h +1 -6
  320. data/ext/ice/cpp/src/Ice/Process.cpp +7 -12
  321. data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -8
  322. data/ext/ice/cpp/src/Ice/Properties.cpp +3 -8
  323. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +9 -14
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +3 -8
  325. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -6
  326. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -8
  327. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +13 -17
  328. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -6
  329. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +41 -8
  330. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -7
  331. data/ext/ice/cpp/src/Ice/Protocol.cpp +1 -6
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -6
  333. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -6
  334. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -6
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -6
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -6
  337. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -6
  338. data/ext/ice/cpp/src/Ice/Proxy.cpp +3 -8
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -6
  340. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -6
  341. data/ext/ice/cpp/src/Ice/Reference.cpp +61 -33
  342. data/ext/ice/cpp/src/Ice/Reference.h +1 -6
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -8
  344. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -6
  345. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -6
  346. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +1 -6
  347. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -6
  348. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +13 -18
  349. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -6
  350. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -6
  351. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -6
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -6
  353. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -6
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -6
  355. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -6
  356. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +2 -7
  357. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -6
  358. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -6
  359. data/ext/ice/cpp/src/Ice/Router.cpp +11 -16
  360. data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -8
  361. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +3 -8
  362. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -6
  363. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -6
  364. data/ext/ice/cpp/src/Ice/SHA1.cpp +1 -6
  365. data/ext/ice/cpp/src/Ice/Selector.cpp +46 -17
  366. data/ext/ice/cpp/src/Ice/Selector.h +1 -6
  367. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +3 -8
  368. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -8
  369. data/ext/ice/cpp/src/Ice/ServantManager.cpp +7 -12
  370. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -6
  371. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -6
  372. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -8
  373. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -6
  374. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -6
  375. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +9 -12
  376. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -6
  377. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -6
  378. data/ext/ice/cpp/src/Ice/StringUtil.h +1 -6
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +3 -8
  380. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -6
  381. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +66 -0
  382. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +39 -0
  383. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +3 -7
  384. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -6
  385. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -6
  386. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -6
  387. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +1 -6
  388. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +1 -6
  389. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +1 -6
  390. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -6
  391. data/ext/ice/cpp/src/Ice/Thread.cpp +18 -14
  392. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +6 -9
  393. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -6
  394. data/ext/ice/cpp/src/Ice/Timer.cpp +1 -6
  395. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -6
  396. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -6
  397. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -6
  398. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -6
  399. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -6
  400. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -6
  401. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -6
  402. data/ext/ice/cpp/src/Ice/TransceiverF.h +3 -8
  403. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +4 -6
  404. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -6
  405. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +1 -6
  406. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +1 -6
  407. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +23 -24
  408. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -6
  409. data/ext/ice/cpp/src/Ice/Value.cpp +1 -6
  410. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +3 -8
  411. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +1 -7
  412. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +1 -6
  413. data/ext/ice/cpp/src/Ice/Version.cpp +3 -8
  414. data/ext/ice/cpp/src/Ice/VirtualShared.h +1 -6
  415. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -6
  416. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -6
  417. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -6
  418. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -6
  419. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +1 -6
  420. data/ext/ice/cpp/src/Ice/WSEndpoint.h +1 -6
  421. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +2 -7
  422. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -7
  423. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +3 -8
  424. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +11 -16
  425. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +4 -7
  426. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -6
  427. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +5 -10
  428. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -6
  429. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +1 -6
  430. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -6
  431. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +3 -8
  432. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +9 -14
  433. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +1 -6
  434. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +3 -8
  435. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +1 -6
  436. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -6
  437. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +1 -6
  438. data/ext/ice/cpp/src/IceSSL/CertificateI.h +1 -6
  439. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +3 -8
  440. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +3 -8
  441. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -6
  442. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -6
  443. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +8 -13
  444. data/ext/ice/cpp/src/IceSSL/EndpointI.h +2 -7
  445. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +3 -8
  446. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
  447. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -6
  448. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -6
  449. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +1 -6
  450. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +96 -30
  451. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +3 -7
  452. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +1 -6
  453. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +1 -6
  454. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +127 -143
  455. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +2 -11
  456. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +1 -6
  457. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +1 -6
  458. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +1 -6
  459. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -6
  460. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -7
  461. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -6
  462. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +5 -10
  463. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +69 -29
  464. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +5 -6
  465. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +5 -6
  466. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +1 -6
  467. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +35 -30
  468. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -6
  469. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -7
  470. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +1 -6
  471. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -6
  472. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +7 -12
  473. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +44 -18
  474. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +5 -6
  475. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +4 -6
  476. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +1 -6
  477. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +28 -23
  478. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +6 -7
  479. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +16 -9
  480. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +5 -6
  481. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -6
  482. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -6
  483. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -6
  484. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +4 -9
  485. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +4 -9
  486. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +1 -6
  487. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +1 -6
  488. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +1 -6
  489. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +5 -10
  490. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +1 -6
  491. data/ext/ice/cpp/src/IceSSL/Util.cpp +1 -6
  492. data/ext/ice/cpp/src/IceSSL/Util.h +1 -6
  493. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +1 -6
  494. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -6
  495. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -6
  496. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +3 -6
  497. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +1 -6
  498. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -6
  499. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -6
  500. data/ext/ice/cpp/src/IceUtil/Options.cpp +22 -12
  501. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +1 -6
  502. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -6
  503. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +2 -7
  504. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -6
  505. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -6
  506. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +42 -9
  507. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -6
  508. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -6
  509. data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -6
  510. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -6
  511. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -6
  512. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +13 -12
  513. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +58 -64
  514. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +2 -7
  515. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -6
  516. data/ext/ice/cpp/src/Slice/Checksum.h +1 -6
  517. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -6
  518. data/ext/ice/cpp/src/Slice/FileTracker.h +1 -6
  519. data/ext/ice/cpp/src/Slice/Grammar.cpp +241 -245
  520. data/ext/ice/cpp/src/Slice/Grammar.h +5 -5
  521. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -7
  522. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +76 -86
  523. data/ext/ice/cpp/src/Slice/JavaUtil.h +5 -10
  524. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -6
  525. data/ext/ice/cpp/src/Slice/MD5.h +1 -6
  526. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +6 -6
  527. data/ext/ice/cpp/src/Slice/PHPUtil.h +1 -6
  528. data/ext/ice/cpp/src/Slice/Parser.cpp +86 -47
  529. data/ext/ice/cpp/src/Slice/Parser.h +6 -9
  530. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +11 -16
  531. data/ext/ice/cpp/src/Slice/Preprocessor.h +1 -6
  532. data/ext/ice/cpp/src/Slice/Python.cpp +21 -27
  533. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +62 -35
  534. data/ext/ice/cpp/src/Slice/PythonUtil.h +1 -6
  535. data/ext/ice/cpp/src/Slice/Ruby.cpp +5 -10
  536. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +12 -14
  537. data/ext/ice/cpp/src/Slice/RubyUtil.h +1 -6
  538. data/ext/ice/cpp/src/Slice/Scanner.cpp +101 -109
  539. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +2 -8
  540. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +1 -6
  541. data/ext/ice/cpp/src/Slice/Util.h +1 -6
  542. data/ice.gemspec +2 -4
  543. data/lib/Glacier2.rb +1 -6
  544. data/lib/Glacier2/Metrics.rb +3 -8
  545. data/lib/Glacier2/PermissionsVerifier.rb +3 -8
  546. data/lib/Glacier2/PermissionsVerifierF.rb +3 -8
  547. data/lib/Glacier2/Router.rb +3 -8
  548. data/lib/Glacier2/RouterF.rb +3 -8
  549. data/lib/Glacier2/SSLInfo.rb +3 -8
  550. data/lib/Glacier2/Session.rb +3 -8
  551. data/lib/Ice.rb +1 -6
  552. data/lib/Ice/BuiltinSequences.rb +3 -8
  553. data/lib/Ice/Communicator.rb +3 -8
  554. data/lib/Ice/CommunicatorF.rb +3 -8
  555. data/lib/Ice/Connection.rb +3 -8
  556. data/lib/Ice/ConnectionF.rb +3 -8
  557. data/lib/Ice/Current.rb +3 -8
  558. data/lib/Ice/Endpoint.rb +3 -8
  559. data/lib/Ice/EndpointF.rb +3 -8
  560. data/lib/Ice/EndpointTypes.rb +3 -8
  561. data/lib/Ice/FacetMap.rb +3 -8
  562. data/lib/Ice/Identity.rb +3 -8
  563. data/lib/Ice/ImplicitContext.rb +3 -8
  564. data/lib/Ice/ImplicitContextF.rb +3 -8
  565. data/lib/Ice/Instrumentation.rb +3 -8
  566. data/lib/Ice/InstrumentationF.rb +3 -8
  567. data/lib/Ice/LocalException.rb +3 -8
  568. data/lib/Ice/Locator.rb +3 -8
  569. data/lib/Ice/LocatorF.rb +3 -8
  570. data/lib/Ice/Logger.rb +3 -8
  571. data/lib/Ice/LoggerF.rb +3 -8
  572. data/lib/Ice/Metrics.rb +3 -8
  573. data/lib/Ice/ObjectAdapter.rb +3 -8
  574. data/lib/Ice/ObjectAdapterF.rb +3 -8
  575. data/lib/Ice/ObjectFactory.rb +3 -8
  576. data/lib/Ice/Plugin.rb +3 -8
  577. data/lib/Ice/PluginF.rb +3 -8
  578. data/lib/Ice/Process.rb +3 -8
  579. data/lib/Ice/ProcessF.rb +3 -8
  580. data/lib/Ice/Properties.rb +3 -8
  581. data/lib/Ice/PropertiesAdmin.rb +3 -8
  582. data/lib/Ice/PropertiesF.rb +3 -8
  583. data/lib/Ice/RemoteLogger.rb +3 -8
  584. data/lib/Ice/Router.rb +3 -8
  585. data/lib/Ice/RouterF.rb +3 -8
  586. data/lib/Ice/ServantLocator.rb +3 -8
  587. data/lib/Ice/ServantLocatorF.rb +3 -8
  588. data/lib/Ice/SliceChecksumDict.rb +3 -8
  589. data/lib/Ice/ValueFactory.rb +3 -8
  590. data/lib/Ice/Version.rb +3 -8
  591. data/lib/IceBox.rb +1 -6
  592. data/lib/IceBox/IceBox.rb +3 -8
  593. data/lib/IceGrid.rb +1 -6
  594. data/lib/IceGrid/Admin.rb +3 -8
  595. data/lib/IceGrid/Descriptor.rb +3 -8
  596. data/lib/IceGrid/Exception.rb +3 -8
  597. data/lib/IceGrid/FileParser.rb +3 -8
  598. data/lib/IceGrid/PluginFacade.rb +3 -8
  599. data/lib/IceGrid/Registry.rb +3 -8
  600. data/lib/IceGrid/Session.rb +3 -8
  601. data/lib/IceGrid/UserAccountMapper.rb +3 -8
  602. data/lib/IcePatch2.rb +1 -6
  603. data/lib/IcePatch2/FileInfo.rb +3 -8
  604. data/lib/IcePatch2/FileServer.rb +3 -8
  605. data/lib/IceStorm.rb +1 -6
  606. data/lib/IceStorm/IceStorm.rb +3 -8
  607. data/lib/IceStorm/Metrics.rb +3 -8
  608. data/slice/Glacier2/Metrics.ice +13 -7
  609. data/slice/Glacier2/PermissionsVerifier.ice +11 -7
  610. data/slice/Glacier2/PermissionsVerifierF.ice +11 -7
  611. data/slice/Glacier2/Router.ice +12 -8
  612. data/slice/Glacier2/RouterF.ice +11 -7
  613. data/slice/Glacier2/SSLInfo.ice +11 -7
  614. data/slice/Glacier2/Session.ice +11 -7
  615. data/slice/Ice/BuiltinSequences.ice +13 -7
  616. data/slice/Ice/Communicator.ice +42 -26
  617. data/slice/Ice/CommunicatorF.ice +13 -7
  618. data/slice/Ice/Connection.ice +21 -15
  619. data/slice/Ice/ConnectionF.ice +13 -7
  620. data/slice/Ice/Current.ice +28 -22
  621. data/slice/Ice/Endpoint.ice +17 -14
  622. data/slice/Ice/EndpointF.ice +13 -7
  623. data/slice/Ice/EndpointTypes.ice +15 -9
  624. data/slice/Ice/FacetMap.ice +13 -7
  625. data/slice/Ice/Identity.ice +13 -7
  626. data/slice/Ice/ImplicitContext.ice +22 -16
  627. data/slice/Ice/ImplicitContextF.ice +12 -7
  628. data/slice/Ice/Instrumentation.ice +13 -7
  629. data/slice/Ice/InstrumentationF.ice +13 -7
  630. data/slice/Ice/LocalException.ice +35 -29
  631. data/slice/Ice/Locator.ice +13 -7
  632. data/slice/Ice/LocatorF.ice +13 -7
  633. data/slice/Ice/Logger.ice +13 -7
  634. data/slice/Ice/LoggerF.ice +13 -7
  635. data/slice/Ice/Metrics.ice +14 -9
  636. data/slice/Ice/ObjectAdapter.ice +24 -18
  637. data/slice/Ice/ObjectAdapterF.ice +13 -7
  638. data/slice/Ice/ObjectFactory.ice +20 -12
  639. data/slice/Ice/Plugin.ice +17 -8
  640. data/slice/Ice/PluginF.ice +17 -7
  641. data/slice/Ice/Process.ice +13 -7
  642. data/slice/Ice/ProcessF.ice +13 -7
  643. data/slice/Ice/Properties.ice +25 -14
  644. data/slice/Ice/PropertiesAdmin.ice +13 -7
  645. data/slice/Ice/PropertiesF.ice +13 -7
  646. data/slice/Ice/RemoteLogger.ice +13 -7
  647. data/slice/Ice/Router.ice +14 -8
  648. data/slice/Ice/RouterF.ice +13 -7
  649. data/slice/Ice/ServantLocator.ice +27 -21
  650. data/slice/Ice/ServantLocatorF.ice +13 -7
  651. data/slice/Ice/SliceChecksumDict.ice +13 -7
  652. data/slice/Ice/ValueFactory.ice +19 -12
  653. data/slice/Ice/Version.ice +13 -7
  654. data/slice/IceBT/ConnectionInfo.ice +12 -7
  655. data/slice/IceBT/EndpointInfo.ice +12 -7
  656. data/slice/IceBT/Types.ice +12 -7
  657. data/slice/IceBox/IceBox.ice +12 -7
  658. data/slice/IceDiscovery/IceDiscovery.ice +12 -7
  659. data/slice/IceGrid/Admin.ice +41 -35
  660. data/slice/IceGrid/Descriptor.ice +15 -10
  661. data/slice/IceGrid/Exception.ice +15 -10
  662. data/slice/IceGrid/FileParser.ice +14 -8
  663. data/slice/IceGrid/PluginFacade.ice +13 -7
  664. data/slice/IceGrid/Registry.ice +13 -7
  665. data/slice/IceGrid/Session.ice +18 -12
  666. data/slice/IceGrid/UserAccountMapper.ice +16 -10
  667. data/slice/IceIAP/ConnectionInfo.ice +10 -7
  668. data/slice/IceIAP/EndpointInfo.ice +10 -7
  669. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +12 -7
  670. data/slice/IcePatch2/FileInfo.ice +12 -7
  671. data/slice/IcePatch2/FileServer.ice +13 -8
  672. data/slice/IceSSL/ConnectionInfo.ice +13 -7
  673. data/slice/IceSSL/ConnectionInfoF.ice +13 -7
  674. data/slice/IceSSL/EndpointInfo.ice +13 -7
  675. data/slice/IceStorm/IceStorm.ice +17 -11
  676. data/slice/IceStorm/Metrics.ice +12 -8
  677. metadata +4 -2
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_OPENSSL_TRANSCEIVER_I_H
11
6
  #define ICESSL_OPENSSL_TRANSCEIVER_I_H
@@ -61,10 +56,8 @@ private:
61
56
  TransceiverI(const InstancePtr&, const IceInternal::TransceiverPtr&, const std::string&, bool);
62
57
  virtual ~TransceiverI();
63
58
 
64
- #ifdef ICE_USE_IOCP
65
59
  bool receive();
66
60
  bool send();
67
- #endif
68
61
 
69
62
  friend class IceSSL::OpenSSL::SSLEngine;
70
63
 
@@ -80,14 +73,12 @@ private:
80
73
  bool _verified;
81
74
 
82
75
  SSL* _ssl;
83
- #ifdef ICE_USE_IOCP
84
- BIO* _iocpBio;
76
+ BIO* _memBio;
85
77
  IceInternal::Buffer _writeBuffer;
86
78
  IceInternal::Buffer _readBuffer;
87
79
  int _sentBytes;
88
80
  size_t _maxSendPacketSize;
89
81
  size_t _maxRecvPacketSize;
90
- #endif
91
82
  };
92
83
  typedef IceUtil::Handle<TransceiverI> TransceiverIPtr;
93
84
 
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/OpenSSLUtil.h>
11
6
 
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_OPENSSL_UTIL_I_H
11
6
  #define ICESSL_OPENSSL_UTIL_I_H
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/PluginI.h>
11
6
  #include <IceSSL/Instance.h>
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_PLUGIN_I_H
11
6
  #define ICESSL_PLUGIN_I_H
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceUtil/StringUtil.h>
11
6
 
@@ -187,7 +182,6 @@ hexToInt(char v)
187
182
  return 10 + (v - 'A');
188
183
  }
189
184
  throw ParseException(__FILE__, __LINE__, "unescape: invalid hex pair");
190
- return 0; // To satisfy the compiler.
191
185
  }
192
186
 
193
187
  static char
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_RFC_2253_H
11
6
  #define ICESSL_RFC_2253_H
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/Plugin.h>
11
6
  #include <IceSSL/SChannel.h>
@@ -165,17 +160,17 @@ filetimeToTime(FILETIME ftime)
165
160
  }
166
161
 
167
162
  string
168
- certNameToString(CERT_NAME_BLOB* name)
163
+ certNameToString(CERT_NAME_BLOB* certName)
169
164
  {
170
- assert(name);
165
+ assert(certName);
171
166
  DWORD length = 0;
172
- if(!(length = CertNameToStr(X509_ASN_ENCODING, name, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, 0, 0)))
167
+ if((length = CertNameToStr(X509_ASN_ENCODING, certName, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, 0, 0)) == 0)
173
168
  {
174
169
  throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString());
175
170
  }
176
171
 
177
172
  vector<char> buffer(length);
178
- if(!CertNameToStr(X509_ASN_ENCODING, name, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, &buffer[0], length))
173
+ if(!CertNameToStr(X509_ASN_ENCODING, certName, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, &buffer[0], length))
179
174
  {
180
175
  throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString());
181
176
  }
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/SChannelEngine.h>
11
6
  #include <IceSSL/SChannelTransceiverI.h>
@@ -19,10 +14,20 @@
19
14
 
20
15
  #include <IceUtil/StringUtil.h>
21
16
  #include <IceUtil/FileUtil.h>
17
+ #include <IceUtil/MutexPtrLock.h>
22
18
  #include <Ice/UUID.h>
23
19
 
24
20
  #include <wincrypt.h>
25
21
 
22
+ //
23
+ // SP_PROT_TLS1_3 is new in v10.0.15021 SDK
24
+ //
25
+ #ifndef SP_PROT_TLS1_3
26
+ # define SP_PROT_TLS1_3_SERVER 0x00001000
27
+ # define SP_PROT_TLS1_3_CLIENT 0x00002000
28
+ # define SP_PROT_TLS1_3 (SP_PROT_TLS1_3_SERVER | SP_PROT_TLS1_3_CLIENT)
29
+ #endif
30
+
26
31
  //
27
32
  // CALG_ECDH_EPHEM algorithm constant is not defined in older version of the SDK headers
28
33
  //
@@ -32,7 +37,7 @@
32
37
  const int ICESSL_CALG_ECDH_EPHEM = 0x0000AE06;
33
38
 
34
39
  //
35
- // COMPILERFIX SCH_USE_STRONG_CRYPTO not defined with VC90
40
+ // COMPILERFIX SCH_USE_STRONG_CRYPTO not defined with v90
36
41
  //
37
42
  #if defined(_MSC_VER) && (_MSC_VER <= 1600)
38
43
  # ifndef SCH_USE_STRONG_CRYPTO
@@ -54,6 +59,26 @@ Shared* SChannel::upCast(SChannel::SSLEngine* p)
54
59
  namespace
55
60
  {
56
61
 
62
+ IceUtil::Mutex* globalMutex;
63
+
64
+ class Init
65
+ {
66
+ public:
67
+
68
+ Init()
69
+ {
70
+ globalMutex = new IceUtil::Mutex;
71
+ }
72
+
73
+ ~Init()
74
+ {
75
+ delete globalMutex;
76
+ globalMutex = 0;
77
+ }
78
+ };
79
+
80
+ Init init;
81
+
57
82
  void
58
83
  addMatchingCertificates(HCERTSTORE source, HCERTSTORE target, DWORD findType, const void* findParam)
59
84
  {
@@ -61,7 +86,7 @@ addMatchingCertificates(HCERTSTORE source, HCERTSTORE target, DWORD findType, co
61
86
  do
62
87
  {
63
88
  if((next = CertFindCertificateInStore(source, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0,
64
- findType, findParam, next)))
89
+ findType, findParam, next)) != 0)
65
90
  {
66
91
  if(!CertAddCertificateContextToStore(target, next, CERT_STORE_ADD_ALWAYS, 0))
67
92
  {
@@ -74,7 +99,7 @@ addMatchingCertificates(HCERTSTORE source, HCERTSTORE target, DWORD findType, co
74
99
  }
75
100
 
76
101
  vector<PCCERT_CONTEXT>
77
- findCertificates(const string& location, const string& name, const string& value, vector<HCERTSTORE>& stores)
102
+ findCertificates(const string& location, const string& storeName, const string& value, vector<HCERTSTORE>& stores)
78
103
  {
79
104
  DWORD storeLoc;
80
105
  if(location == "CurrentUser")
@@ -86,10 +111,10 @@ findCertificates(const string& location, const string& name, const string& value
86
111
  storeLoc = CERT_SYSTEM_STORE_LOCAL_MACHINE;
87
112
  }
88
113
 
89
- HCERTSTORE store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, storeLoc, Ice::stringToWstring(name).c_str());
114
+ HCERTSTORE store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, storeLoc, Ice::stringToWstring(storeName).c_str());
90
115
  if(!store)
91
116
  {
92
- throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: failed to open certificate store `" + name +
117
+ throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: failed to open certificate store `" + storeName +
93
118
  "':\n" + IceUtilInternal::lastErrorToString());
94
119
  }
95
120
 
@@ -253,7 +278,7 @@ findCertificates(const string& location, const string& name, const string& value
253
278
  do
254
279
  {
255
280
  if((next = CertFindCertificateInStore(store, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0,
256
- CERT_FIND_ANY, 0, next)))
281
+ CERT_FIND_ANY, 0, next)) != 0)
257
282
  {
258
283
  if(CertCompareIntegerBlob(&serial, &next->pCertInfo->SerialNumber))
259
284
  {
@@ -295,7 +320,7 @@ findCertificates(const string& location, const string& name, const string& value
295
320
  do
296
321
  {
297
322
  if((next = CertFindCertificateInStore(store, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, CERT_FIND_ANY, 0,
298
- next)))
323
+ next)) != 0)
299
324
  {
300
325
  certs.push_back(next);
301
326
  }
@@ -399,23 +424,23 @@ parseProtocols(const StringSeq& protocols)
399
424
 
400
425
  if(prot == "SSL3" || prot == "SSLV3")
401
426
  {
402
- v |= SP_PROT_SSL3_SERVER;
403
- v |= SP_PROT_SSL3_CLIENT;
427
+ v |= SP_PROT_SSL3;
404
428
  }
405
429
  else if(prot == "TLS" || prot == "TLS1" || prot == "TLSV1" || prot == "TLS1_0" || prot == "TLSV1_0")
406
430
  {
407
- v |= SP_PROT_TLS1_SERVER;
408
- v |= SP_PROT_TLS1_CLIENT;
431
+ v |= SP_PROT_TLS1;
409
432
  }
410
433
  else if(prot == "TLS1_1" || prot == "TLSV1_1")
411
434
  {
412
- v |= SP_PROT_TLS1_1_SERVER;
413
- v |= SP_PROT_TLS1_1_CLIENT;
435
+ v |= SP_PROT_TLS1_1;
414
436
  }
415
437
  else if(prot == "TLS1_2" || prot == "TLSV1_2")
416
438
  {
417
- v |= SP_PROT_TLS1_2_SERVER;
418
- v |= SP_PROT_TLS1_2_CLIENT;
439
+ v |= SP_PROT_TLS1_2;
440
+ }
441
+ else if (prot == "TLS1_3" || prot == "TLSV1_2")
442
+ {
443
+ v |= SP_PROT_TLS1_3;
419
444
  }
420
445
  else
421
446
  {
@@ -580,6 +605,17 @@ SChannel::SSLEngine::SSLEngine(const CommunicatorPtr& communicator) :
580
605
  void
581
606
  SChannel::SSLEngine::initialize()
582
607
  {
608
+ //
609
+ // BUGFIX: we use a global mutex for the initialization of SChannel to
610
+ // avoid crashes ocurring with last SChannel updates see:
611
+ // https://github.com/zeroc-ice/ice/issues/242
612
+ //
613
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(globalMutex);
614
+
615
+ //
616
+ // We still have to acquire the instance mutex because it is used by the base
617
+ // class to access _initialized data member.
618
+ //
583
619
  Mutex::Lock lock(_mutex);
584
620
  if(_initialized)
585
621
  {
@@ -751,21 +787,21 @@ SChannel::SSLEngine::initialize()
751
787
 
752
788
  for(size_t i = 0; i < certFiles.size(); ++i)
753
789
  {
754
- string certFile = certFiles[i];
790
+ string cFile = certFiles[i];
755
791
  string resolved;
756
- if(!checkPath(certFile, defaultDir, false, resolved))
792
+ if(!checkPath(cFile, defaultDir, false, resolved))
757
793
  {
758
794
  throw PluginInitializationException(__FILE__, __LINE__,
759
- "IceSSL: certificate file not found:\n" + certFile);
795
+ "IceSSL: certificate file not found:\n" + cFile);
760
796
  }
761
- certFile = resolved;
797
+ cFile = resolved;
762
798
 
763
799
  vector<char> buffer;
764
- readFile(certFile, buffer);
800
+ readFile(cFile, buffer);
765
801
  if(buffer.empty())
766
802
  {
767
803
  throw PluginInitializationException(__FILE__, __LINE__,
768
- "IceSSL: certificate file is empty:\n" + certFile);
804
+ "IceSSL: certificate file is empty:\n" + cFile);
769
805
  }
770
806
 
771
807
  CRYPT_DATA_BLOB pfxBlob;
@@ -962,7 +998,7 @@ SChannel::SSLEngine::initialize()
962
998
  "store:\n" + lastErrorToString());
963
999
  }
964
1000
 
965
- addCertificatesToStore(certFile, store, &cert);
1001
+ addCertificatesToStore(cFile, store, &cert);
966
1002
 
967
1003
  //
968
1004
  // Associate key & certificate
@@ -1098,7 +1134,11 @@ SChannel::SSLEngine::getCipherName(ALG_ID cipher) const
1098
1134
  case CALG_SHA_512:
1099
1135
  return "SHA_512";
1100
1136
  default:
1101
- return "Unknown";
1137
+ {
1138
+ ostringstream os;
1139
+ os << "Unknown cipher: " << cipher;
1140
+ return os.str();
1141
+ }
1102
1142
  }
1103
1143
  }
1104
1144
 
@@ -1,15 +1,12 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_SCHANNEL_ENGINE_H
11
6
  #define ICESSL_SCHANNEL_ENGINE_H
12
7
 
8
+ #ifdef _WIN32
9
+
13
10
  #include <IceSSL/SSLEngine.h>
14
11
  #include <IceSSL/SChannelEngineF.h>
15
12
 
@@ -124,3 +121,5 @@ private:
124
121
  }
125
122
 
126
123
  #endif
124
+
125
+ #endif
@@ -1,15 +1,12 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #ifndef ICESSL_SCHANNEL_ENGINE_F_H
11
6
  #define ICESSL_SCHANNEL_ENGINE_F_H
12
7
 
8
+ #ifdef _WIN32
9
+
13
10
  #include <IceUtil/Shared.h>
14
11
  #include <Ice/Handle.h>
15
12
 
@@ -30,3 +27,5 @@ typedef IceInternal::Handle<SSLEngine> SSLEnginePtr;
30
27
  }
31
28
 
32
29
  #endif
30
+
31
+ #endif
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/PluginI.h>
11
6
  #include <IceSSL/SChannelEngine.h>
@@ -1,11 +1,6 @@
1
- // **********************************************************************
2
1
  //
3
- // Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
2
+ // Copyright (c) ZeroC, Inc. All rights reserved.
4
3
  //
5
- // This copy of Ice is licensed to you under the terms described in the
6
- // ICE_LICENSE file included in this distribution.
7
- //
8
- // **********************************************************************
9
4
 
10
5
  #include <IceSSL/SChannelTransceiverI.h>
11
6
 
@@ -234,9 +229,9 @@ SChannel::TransceiverI::sslHandshake()
234
229
  }
235
230
 
236
231
  SECURITY_STATUS err = SEC_E_OK;
237
- DWORD ctxFlags = 0;
238
232
  if(_state == StateHandshakeNotStarted)
239
233
  {
234
+ _ctxFlags = 0;
240
235
  _readBuffer.b.resize(2048);
241
236
  _readBuffer.i = _readBuffer.b.begin();
242
237
  _credentials = _engine->newCredentialsHandle(_incoming);
@@ -248,7 +243,7 @@ SChannel::TransceiverI::sslHandshake()
248
243
  SecBufferDesc outBufferDesc = { SECBUFFER_VERSION, 1, &outBuffer };
249
244
 
250
245
  err = InitializeSecurityContext(&_credentials, 0, const_cast<char *>(_host.c_str()), flags, 0, 0, 0, 0,
251
- &_ssl, &outBufferDesc, &ctxFlags, 0);
246
+ &_ssl, &outBufferDesc, &_ctxFlags, 0);
252
247
  if(err != SEC_E_OK && err != SEC_I_CONTINUE_NEEDED)
253
248
  {
254
249
  throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + secStatusToString(err));
@@ -296,7 +291,7 @@ SChannel::TransceiverI::sslHandshake()
296
291
  if(_incoming)
297
292
  {
298
293
  err = AcceptSecurityContext(&_credentials, (_sslInitialized ? &_ssl : 0), &inBufferDesc, flags, 0,
299
- &_ssl, &outBufferDesc, &ctxFlags, 0);
294
+ &_ssl, &outBufferDesc, &_ctxFlags, 0);
300
295
  if(err == SEC_I_CONTINUE_NEEDED || err == SEC_E_OK)
301
296
  {
302
297
  _sslInitialized = true;
@@ -305,7 +300,7 @@ SChannel::TransceiverI::sslHandshake()
305
300
  else
306
301
  {
307
302
  err = InitializeSecurityContext(&_credentials, &_ssl, const_cast<char*>(_host.c_str()), flags, 0, 0,
308
- &inBufferDesc, 0, 0, &outBufferDesc, &ctxFlags, 0);
303
+ &inBufferDesc, 0, 0, &outBufferDesc, &_ctxFlags, 0);
309
304
  }
310
305
 
311
306
  //
@@ -315,7 +310,7 @@ SChannel::TransceiverI::sslHandshake()
315
310
  {
316
311
  SecBuffer* missing = getSecBufferWithType(inBufferDesc, SECBUFFER_MISSING);
317
312
  size_t pos = _readBuffer.i - _readBuffer.b.begin();
318
- _readBuffer.b.resize(missing ? (pos + missing->cbBuffer) : (pos * 2));
313
+ _readBuffer.b.resize((missing && missing->cbBuffer > 0) ? (pos + missing->cbBuffer) : (pos * 2));
319
314
  _readBuffer.i = _readBuffer.b.begin() + pos;
320
315
  return IceInternal::SocketOperationRead;
321
316
  }
@@ -354,7 +349,14 @@ SChannel::TransceiverI::sslHandshake()
354
349
 
355
350
  if(token->cbBuffer)
356
351
  {
357
- _state = StateHandshakeWriteContinue; // Continue writing if we have a token.
352
+ if(err == SEC_E_OK)
353
+ {
354
+ _state = StateHandshakeWriteNoContinue; // Write and don't continue.
355
+ }
356
+ else
357
+ {
358
+ _state = StateHandshakeWriteContinue; // Continue writing if we have a token.
359
+ }
358
360
  }
359
361
  else if(err == SEC_E_OK)
360
362
  {
@@ -364,7 +366,7 @@ SChannel::TransceiverI::sslHandshake()
364
366
  // Otherwise continue either reading credentials
365
367
  }
366
368
 
367
- if(_state == StateHandshakeWriteContinue)
369
+ if(_state == StateHandshakeWriteContinue || _state == StateHandshakeWriteNoContinue)
368
370
  {
369
371
  //
370
372
  // Write any pending data.
@@ -373,80 +375,83 @@ SChannel::TransceiverI::sslHandshake()
373
375
  {
374
376
  return IceInternal::SocketOperationWrite;
375
377
  }
376
- if(err == SEC_E_OK)
378
+ if(_state == StateHandshakeWriteNoContinue)
377
379
  {
378
380
  break; // Token is written and we weren't told to continue, so we're done!
379
381
  }
380
- assert(err == SEC_I_CONTINUE_NEEDED);
381
382
  _state = StateHandshakeReadContinue;
382
383
  }
383
384
  }
384
385
 
385
386
  //
386
- // Check if the requested capabilities are met
387
+ // Check if the requested capabilities are met.
388
+ //
389
+ // NOTE: it's important for _ctxFlags to be a data member. The context flags might not be checked immediately
390
+ // if the last write can't complete without blocking above. In such a case, the context flags are checked here
391
+ // only once the sslHandshake is called again after the write completes.
387
392
  //
388
- if(flags != ctxFlags)
393
+ if(flags != _ctxFlags)
389
394
  {
390
395
  if(_incoming)
391
396
  {
392
- if(!(ctxFlags & ASC_REQ_SEQUENCE_DETECT))
397
+ if(!(_ctxFlags & ASC_REQ_SEQUENCE_DETECT))
393
398
  {
394
399
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup sequence detect");
395
400
  }
396
401
 
397
- if(!(ctxFlags & ASC_REQ_REPLAY_DETECT))
402
+ if(!(_ctxFlags & ASC_REQ_REPLAY_DETECT))
398
403
  {
399
404
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup replay detect");
400
405
  }
401
406
 
402
- if(!(ctxFlags & ASC_REQ_CONFIDENTIALITY))
407
+ if(!(_ctxFlags & ASC_REQ_CONFIDENTIALITY))
403
408
  {
404
409
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup confidentiality");
405
410
  }
406
411
 
407
- if(!(ctxFlags & ASC_REQ_EXTENDED_ERROR))
412
+ if(!(_ctxFlags & ASC_REQ_EXTENDED_ERROR))
408
413
  {
409
414
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup extended error");
410
415
  }
411
416
 
412
- if(!(ctxFlags & ASC_REQ_ALLOCATE_MEMORY))
417
+ if(!(_ctxFlags & ASC_REQ_ALLOCATE_MEMORY))
413
418
  {
414
419
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup memory allocation");
415
420
  }
416
421
 
417
- if(!(ctxFlags & ASC_REQ_STREAM))
422
+ if(!(_ctxFlags & ASC_REQ_STREAM))
418
423
  {
419
424
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup stream");
420
425
  }
421
426
  }
422
427
  else
423
428
  {
424
- if(!(ctxFlags & ISC_REQ_SEQUENCE_DETECT))
429
+ if(!(_ctxFlags & ISC_REQ_SEQUENCE_DETECT))
425
430
  {
426
431
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup sequence detect");
427
432
  }
428
433
 
429
- if(!(ctxFlags & ISC_REQ_REPLAY_DETECT))
434
+ if(!(_ctxFlags & ISC_REQ_REPLAY_DETECT))
430
435
  {
431
436
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup replay detect");
432
437
  }
433
438
 
434
- if(!(ctxFlags & ISC_REQ_CONFIDENTIALITY))
439
+ if(!(_ctxFlags & ISC_REQ_CONFIDENTIALITY))
435
440
  {
436
441
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup confidentiality");
437
442
  }
438
443
 
439
- if(!(ctxFlags & ISC_REQ_EXTENDED_ERROR))
444
+ if(!(_ctxFlags & ISC_REQ_EXTENDED_ERROR))
440
445
  {
441
446
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup extended error");
442
447
  }
443
448
 
444
- if(!(ctxFlags & ISC_REQ_ALLOCATE_MEMORY))
449
+ if(!(_ctxFlags & ISC_REQ_ALLOCATE_MEMORY))
445
450
  {
446
451
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup memory allocation");
447
452
  }
448
453
 
449
- if(!(ctxFlags & ISC_REQ_STREAM))
454
+ if(!(_ctxFlags & ISC_REQ_STREAM))
450
455
  {
451
456
  throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup stream");
452
457
  }
@@ -900,7 +905,7 @@ SChannel::TransceiverI::startWrite(IceInternal::Buffer& buffer)
900
905
  _bufferedW = encryptMessage(buffer);
901
906
  }
902
907
 
903
- return _delegate->startWrite(_writeBuffer) && _bufferedW == (buffer.b.end() - buffer.i);
908
+ return _delegate->startWrite(_writeBuffer) && _bufferedW == static_cast<size_t>((buffer.b.end() - buffer.i));
904
909
  }
905
910
 
906
911
  void