zeroc-ice 3.7.7 → 3.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/ext/Communicator.cpp +1 -0
  3. data/ext/Config.h +6 -1
  4. data/ext/Connection.cpp +7 -0
  5. data/ext/Endpoint.cpp +8 -0
  6. data/ext/ImplicitContext.cpp +1 -0
  7. data/ext/Logger.cpp +1 -0
  8. data/ext/Operation.cpp +1 -0
  9. data/ext/Properties.cpp +1 -0
  10. data/ext/Proxy.cpp +1 -0
  11. data/ext/Types.cpp +3 -0
  12. data/ext/Util.cpp +0 -4
  13. data/ext/ValueFactoryManager.cpp +1 -0
  14. data/ext/extconf.rb +3 -11
  15. data/ext/ice/cpp/include/IceUtil/Config.h +2 -2
  16. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +2 -2
  17. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -0
  18. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +2 -2
  19. data/ext/ice/cpp/include/generated/Ice/Communicator.h +2 -2
  20. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +2 -2
  21. data/ext/ice/cpp/include/generated/Ice/Connection.h +2 -2
  22. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +2 -2
  23. data/ext/ice/cpp/include/generated/Ice/Current.h +2 -2
  24. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +2 -2
  25. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +2 -2
  26. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +2 -2
  27. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +2 -2
  28. data/ext/ice/cpp/include/generated/Ice/Identity.h +2 -2
  29. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +2 -2
  30. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +2 -2
  31. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +2 -2
  32. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +2 -2
  33. data/ext/ice/cpp/include/generated/Ice/LocalException.h +2 -2
  34. data/ext/ice/cpp/include/generated/Ice/Locator.h +2 -2
  35. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +2 -2
  36. data/ext/ice/cpp/include/generated/Ice/Logger.h +2 -2
  37. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +2 -2
  38. data/ext/ice/cpp/include/generated/Ice/Metrics.h +2 -2
  39. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +2 -2
  40. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +2 -2
  41. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +2 -2
  42. data/ext/ice/cpp/include/generated/Ice/Plugin.h +2 -2
  43. data/ext/ice/cpp/include/generated/Ice/PluginF.h +2 -2
  44. data/ext/ice/cpp/include/generated/Ice/Process.h +2 -2
  45. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +2 -2
  46. data/ext/ice/cpp/include/generated/Ice/Properties.h +2 -2
  47. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +2 -2
  48. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +2 -2
  49. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +2 -2
  50. data/ext/ice/cpp/include/generated/Ice/Router.h +2 -2
  51. data/ext/ice/cpp/include/generated/Ice/RouterF.h +2 -2
  52. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +2 -2
  53. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +2 -2
  54. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +2 -2
  55. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +2 -2
  56. data/ext/ice/cpp/include/generated/Ice/Version.h +2 -2
  57. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +2 -2
  58. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +2 -2
  59. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +2 -2
  60. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
  61. data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
  62. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
  63. data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
  64. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
  65. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +2 -2
  66. data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
  67. data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
  68. data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
  69. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
  70. data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
  71. data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
  72. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
  73. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
  74. data/ext/ice/cpp/src/Ice/Initialize.cpp +1 -1
  75. data/ext/ice/cpp/src/Ice/Instance.cpp +2 -2
  76. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
  77. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
  78. data/ext/ice/cpp/src/Ice/LocalException.cpp +2 -2
  79. data/ext/ice/cpp/src/Ice/Locator.cpp +2 -2
  80. data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
  81. data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
  82. data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
  83. data/ext/ice/cpp/src/Ice/Metrics.cpp +2 -2
  84. data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
  85. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
  86. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
  87. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
  88. data/ext/ice/cpp/src/Ice/Plugin.cpp +2 -2
  89. data/ext/ice/cpp/src/Ice/PluginF.cpp +2 -2
  90. data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
  91. data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
  92. data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
  93. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
  94. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
  95. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +2 -2
  96. data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
  97. data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
  98. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
  99. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
  100. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
  101. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +2 -2
  102. data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
  103. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
  104. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +2 -2
  105. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
  106. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +2 -2
  107. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +1 -1
  108. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
  109. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +2 -2
  110. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
  111. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +29 -6
  112. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +3 -0
  113. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +3 -0
  114. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +4 -0
  115. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -2
  116. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +4 -2
  117. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +3 -3
  118. data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -0
  119. data/ext/ice/cpp/src/Slice/MD5I.cpp +2 -1
  120. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +67 -6
  121. data/ice.gemspec +1 -1
  122. data/lib/Glacier2/Metrics.rb +1 -1
  123. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  124. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  125. data/lib/Glacier2/Router.rb +1 -1
  126. data/lib/Glacier2/RouterF.rb +1 -1
  127. data/lib/Glacier2/SSLInfo.rb +1 -1
  128. data/lib/Glacier2/Session.rb +1 -1
  129. data/lib/Ice/BuiltinSequences.rb +1 -1
  130. data/lib/Ice/Communicator.rb +1 -1
  131. data/lib/Ice/CommunicatorF.rb +1 -1
  132. data/lib/Ice/Connection.rb +1 -1
  133. data/lib/Ice/ConnectionF.rb +1 -1
  134. data/lib/Ice/Current.rb +1 -1
  135. data/lib/Ice/Endpoint.rb +1 -1
  136. data/lib/Ice/EndpointF.rb +1 -1
  137. data/lib/Ice/EndpointTypes.rb +1 -1
  138. data/lib/Ice/FacetMap.rb +1 -1
  139. data/lib/Ice/Identity.rb +1 -1
  140. data/lib/Ice/ImplicitContext.rb +1 -1
  141. data/lib/Ice/ImplicitContextF.rb +1 -1
  142. data/lib/Ice/Instrumentation.rb +1 -1
  143. data/lib/Ice/InstrumentationF.rb +1 -1
  144. data/lib/Ice/LocalException.rb +1 -1
  145. data/lib/Ice/Locator.rb +1 -1
  146. data/lib/Ice/LocatorF.rb +1 -1
  147. data/lib/Ice/Logger.rb +1 -1
  148. data/lib/Ice/LoggerF.rb +1 -1
  149. data/lib/Ice/Metrics.rb +1 -1
  150. data/lib/Ice/ObjectAdapter.rb +1 -1
  151. data/lib/Ice/ObjectAdapterF.rb +1 -1
  152. data/lib/Ice/ObjectFactory.rb +1 -1
  153. data/lib/Ice/Plugin.rb +1 -1
  154. data/lib/Ice/PluginF.rb +1 -1
  155. data/lib/Ice/Process.rb +1 -1
  156. data/lib/Ice/ProcessF.rb +1 -1
  157. data/lib/Ice/Properties.rb +1 -1
  158. data/lib/Ice/PropertiesAdmin.rb +1 -1
  159. data/lib/Ice/PropertiesF.rb +1 -1
  160. data/lib/Ice/RemoteLogger.rb +1 -1
  161. data/lib/Ice/Router.rb +1 -1
  162. data/lib/Ice/RouterF.rb +1 -1
  163. data/lib/Ice/ServantLocator.rb +1 -1
  164. data/lib/Ice/ServantLocatorF.rb +1 -1
  165. data/lib/Ice/SliceChecksumDict.rb +1 -1
  166. data/lib/Ice/ValueFactory.rb +1 -1
  167. data/lib/Ice/Version.rb +1 -1
  168. data/lib/Ice.rb +3 -3
  169. data/lib/IceBox/IceBox.rb +1 -1
  170. data/lib/IceGrid/Admin.rb +1 -1
  171. data/lib/IceGrid/Descriptor.rb +1 -1
  172. data/lib/IceGrid/Exception.rb +1 -1
  173. data/lib/IceGrid/FileParser.rb +1 -1
  174. data/lib/IceGrid/PluginFacade.rb +1 -1
  175. data/lib/IceGrid/Registry.rb +1 -1
  176. data/lib/IceGrid/Session.rb +1 -1
  177. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  178. data/lib/IcePatch2/FileInfo.rb +1 -1
  179. data/lib/IcePatch2/FileServer.rb +1 -1
  180. data/lib/IceStorm/IceStorm.rb +1 -1
  181. data/lib/IceStorm/Metrics.rb +1 -1
  182. data/slice/Glacier2/PermissionsVerifier.ice +1 -0
  183. data/slice/Glacier2/PermissionsVerifierF.ice +1 -0
  184. data/slice/Glacier2/Router.ice +1 -0
  185. data/slice/Glacier2/RouterF.ice +1 -0
  186. data/slice/Glacier2/SSLInfo.ice +1 -0
  187. data/slice/Glacier2/Session.ice +1 -0
  188. data/slice/Ice/BuiltinSequences.ice +1 -0
  189. data/slice/Ice/Communicator.ice +1 -0
  190. data/slice/Ice/CommunicatorF.ice +1 -0
  191. data/slice/Ice/Connection.ice +1 -0
  192. data/slice/Ice/ConnectionF.ice +1 -0
  193. data/slice/Ice/Current.ice +1 -0
  194. data/slice/Ice/Endpoint.ice +1 -0
  195. data/slice/Ice/EndpointF.ice +1 -0
  196. data/slice/Ice/EndpointTypes.ice +1 -0
  197. data/slice/Ice/FacetMap.ice +1 -0
  198. data/slice/Ice/Identity.ice +1 -0
  199. data/slice/Ice/ImplicitContext.ice +1 -0
  200. data/slice/Ice/ImplicitContextF.ice +1 -0
  201. data/slice/Ice/Instrumentation.ice +1 -0
  202. data/slice/Ice/InstrumentationF.ice +1 -0
  203. data/slice/Ice/LocalException.ice +1 -0
  204. data/slice/Ice/Locator.ice +1 -0
  205. data/slice/Ice/LocatorF.ice +1 -0
  206. data/slice/Ice/Logger.ice +1 -0
  207. data/slice/Ice/LoggerF.ice +1 -0
  208. data/slice/Ice/Metrics.ice +1 -0
  209. data/slice/Ice/ObjectAdapter.ice +1 -0
  210. data/slice/Ice/ObjectAdapterF.ice +1 -0
  211. data/slice/Ice/ObjectFactory.ice +1 -0
  212. data/slice/Ice/Plugin.ice +1 -0
  213. data/slice/Ice/PluginF.ice +1 -0
  214. data/slice/Ice/Process.ice +1 -0
  215. data/slice/Ice/ProcessF.ice +1 -0
  216. data/slice/Ice/Properties.ice +1 -0
  217. data/slice/Ice/PropertiesAdmin.ice +1 -0
  218. data/slice/Ice/PropertiesF.ice +1 -0
  219. data/slice/Ice/RemoteLogger.ice +1 -0
  220. data/slice/Ice/Router.ice +1 -0
  221. data/slice/Ice/RouterF.ice +1 -0
  222. data/slice/Ice/ServantLocator.ice +1 -0
  223. data/slice/Ice/ServantLocatorF.ice +1 -0
  224. data/slice/Ice/SliceChecksumDict.ice +1 -0
  225. data/slice/Ice/ValueFactory.ice +1 -0
  226. data/slice/Ice/Version.ice +1 -0
  227. data/slice/IceBT/ConnectionInfo.ice +1 -0
  228. data/slice/IceBT/EndpointInfo.ice +1 -0
  229. data/slice/IceBT/Types.ice +1 -0
  230. data/slice/IceBox/IceBox.ice +1 -0
  231. data/slice/IceDiscovery/IceDiscovery.ice +1 -0
  232. data/slice/IceGrid/Admin.ice +1 -0
  233. data/slice/IceGrid/Descriptor.ice +1 -0
  234. data/slice/IceGrid/Exception.ice +1 -0
  235. data/slice/IceGrid/FileParser.ice +1 -0
  236. data/slice/IceGrid/PluginFacade.ice +1 -0
  237. data/slice/IceGrid/Registry.ice +1 -0
  238. data/slice/IceGrid/Session.ice +1 -0
  239. data/slice/IceGrid/UserAccountMapper.ice +1 -0
  240. data/slice/IceIAP/ConnectionInfo.ice +1 -0
  241. data/slice/IceIAP/EndpointInfo.ice +1 -0
  242. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +1 -0
  243. data/slice/IcePatch2/FileInfo.ice +1 -0
  244. data/slice/IcePatch2/FileServer.ice +1 -0
  245. data/slice/IceSSL/ConnectionInfo.ice +1 -0
  246. data/slice/IceSSL/ConnectionInfoF.ice +1 -0
  247. data/slice/IceSSL/EndpointInfo.ice +1 -0
  248. data/slice/IceStorm/IceStorm.ice +1 -0
  249. data/slice/IceStorm/Metrics.ice +4 -1
  250. metadata +3 -3
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.7
5
+ // Ice version 3.7.9
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -35,7 +35,7 @@
35
35
  # if ICE_INT_VERSION % 100 >= 50
36
36
  # error Beta header file detected
37
37
  # endif
38
- # if ICE_INT_VERSION % 100 < 7
38
+ # if ICE_INT_VERSION % 100 < 9
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
  //
5
- // Ice version 3.7.7
5
+ // Ice version 3.7.9
6
6
  //
7
7
  // <auto-generated>
8
8
  //
@@ -37,7 +37,7 @@
37
37
  # if ICE_INT_VERSION % 100 >= 50
38
38
  # error Beta header file detected
39
39
  # endif
40
- # if ICE_INT_VERSION % 100 < 7
40
+ # if ICE_INT_VERSION % 100 < 9
41
41
  # error Ice patch level mismatch!
42
42
  # endif
43
43
  #endif
@@ -399,10 +399,21 @@ OpenSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::
399
399
  }
400
400
  case SSL_ERROR_SSL:
401
401
  {
402
- ostringstream ostr;
403
- ostr << "SSL error occurred for new " << (_incoming ? "incoming" : "outgoing")
404
- << " connection:\n" << _delegate->toString() << "\n" << _engine->sslErrors();
405
- throw ProtocolException(__FILE__, __LINE__, ostr.str());
402
+ #if defined(SSL_R_UNEXPECTED_EOF_WHILE_READING)
403
+ if (SSL_R_UNEXPECTED_EOF_WHILE_READING == ERR_GET_REASON(ERR_get_error()))
404
+ {
405
+ throw ConnectionLostException(__FILE__, __LINE__, 0);
406
+ }
407
+ else
408
+ {
409
+ #endif
410
+ ostringstream ostr;
411
+ ostr << "SSL error occurred for new " << (_incoming ? "incoming" : "outgoing")
412
+ << " connection:\n" << _delegate->toString() << "\n" << _engine->sslErrors();
413
+ throw ProtocolException(__FILE__, __LINE__, ostr.str());
414
+ #if defined(SSL_R_UNEXPECTED_EOF_WHILE_READING)
415
+ }
416
+ #endif
406
417
  }
407
418
  }
408
419
  }
@@ -748,8 +759,20 @@ OpenSSL::TransceiverI::read(IceInternal::Buffer& buf)
748
759
  }
749
760
  case SSL_ERROR_SSL:
750
761
  {
751
- throw ProtocolException(__FILE__, __LINE__,
752
- "SSL protocol error during read:\n" + _engine->sslErrors());
762
+ #if defined(SSL_R_UNEXPECTED_EOF_WHILE_READING)
763
+ if (SSL_R_UNEXPECTED_EOF_WHILE_READING == ERR_GET_REASON(ERR_peek_error()))
764
+ {
765
+ ERR_clear_error();
766
+ throw ConnectionLostException(__FILE__, __LINE__, 0);
767
+ }
768
+ else
769
+ {
770
+ #endif
771
+ throw ProtocolException(__FILE__, __LINE__,
772
+ "SSL protocol error during read:\n" + _engine->sslErrors());
773
+ #if defined(SSL_R_UNEXPECTED_EOF_WHILE_READING)
774
+ }
775
+ #endif
753
776
  }
754
777
  }
755
778
  }
@@ -25,6 +25,9 @@
25
25
 
26
26
  #include <regex.h>
27
27
 
28
+ // Disable deprecation warnings from SecureTransport APIs
29
+ #include <IceUtil/DisableWarnings.h>
30
+
28
31
  using namespace std;
29
32
  using namespace IceUtil;
30
33
  using namespace Ice;
@@ -12,6 +12,9 @@
12
12
  #include <Ice/LoggerUtil.h>
13
13
  #include <Ice/LocalException.h>
14
14
 
15
+ // Disable deprecation warnings from SecureTransport APIs
16
+ #include <IceUtil/DisableWarnings.h>
17
+
15
18
  using namespace std;
16
19
  using namespace Ice;
17
20
  using namespace IceInternal;
@@ -23,6 +23,10 @@ using namespace IceSSL;
23
23
  using namespace IceSSL::SecureTransport;
24
24
  using namespace std;
25
25
 
26
+ #if defined(__clang__)
27
+ # pragma clang diagnostic ignored "-Wdeprecated-declarations"
28
+ #endif
29
+
26
30
  namespace
27
31
  {
28
32
 
@@ -34,10 +34,15 @@ IceUtilInternal::int64ToString(Int64 val)
34
34
 
35
35
  #if defined(_WIN32)
36
36
  sprintf_s(buf, sizeof(buf), "%I64d", val);
37
- #elif defined(ICE_64)
38
- sprintf(buf, "%ld", val); // Avoids a format warning from GCC.
37
+ #elif defined(__APPLE__)
38
+ // sprintf is deprecated with macOS Ventura
39
+ snprintf(buf, sizeof(buf), "%ld", val); // Avoids a format warning from GCC.
39
40
  #else
41
+ # if defined(ICE_64)
42
+ sprintf(buf, "%ld", val); // Avoids a format warning from GCC.
43
+ # else
40
44
  sprintf(buf, "%lld", val);
45
+ # endif
41
46
  #endif
42
47
  return string(buf);
43
48
  }
@@ -2,10 +2,12 @@
2
2
  // Copyright (c) ZeroC, Inc. All rights reserved.
3
3
  //
4
4
 
5
+ // TODO codecvt was deprecated in C++17 and cause build failures in C++17 mode
6
+ // For VC++ we should replace this code with MultiByteToWideChar() and WideCharToMultiByte()
5
7
  #if defined(_MSC_VER) && (_MSVC_LANG >= 201703L)
6
- // TODO codecvt was deprecated in C++17 and cause build failures with VC++ compiler
7
- // we should replace this code with MultiByteToWideChar() and WideCharToMultiByte()
8
8
  # define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
9
+ #elif (__cplusplus >= 201703L)
10
+ # include <IceUtil/DisableWarnings.h>
9
11
  #endif
10
12
 
11
13
  #include <IceUtil/StringConverter.h>
@@ -1191,11 +1191,11 @@ lookupKwd(const string& name)
1191
1191
  //
1192
1192
  static const string keywordList[] =
1193
1193
  {
1194
- "alignas", "alignof", "and", "and_eq", "asm", "auto", "bit_and", "bit_or", "bool", "break",
1195
- "case", "catch", "char", "char16_t", "char32_t", "class", "compl", "const", "const_exptr", "const_cast", "continue",
1194
+ "alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break",
1195
+ "case", "catch", "char", "char16_t", "char32_t", "class", "compl", "const", "const_cast", "constexpr", "continue",
1196
1196
  "decltype", "default", "delete", "do", "double", "dynamic_cast",
1197
1197
  "else", "enum", "explicit", "export", "extern", "false", "float", "for", "friend",
1198
- "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq",
1198
+ "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq", "nullptr",
1199
1199
  "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast", "requires",
1200
1200
  "return", "short", "signed", "sizeof", "static", "static_assert", "static_cast", "struct", "switch",
1201
1201
  "template", "this", "thread_local", "throw", "true", "try", "typedef", "typeid", "typename",
@@ -104,6 +104,7 @@
104
104
  #if defined(__clang__)
105
105
  # pragma clang diagnostic ignored "-Wconversion"
106
106
  # pragma clang diagnostic ignored "-Wsign-conversion"
107
+ # pragma clang diagnostic ignored "-Wunused-but-set-variable"
107
108
  #endif
108
109
 
109
110
  using namespace std;
@@ -52,6 +52,7 @@
52
52
  */
53
53
 
54
54
  #include <Slice/MD5I.h>
55
+ #include <stdint.h>
55
56
  #include <string.h>
56
57
 
57
58
  #ifdef __GNUC__
@@ -172,7 +173,7 @@ md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/)
172
173
  * On little-endian machines, we can process properly aligned
173
174
  * data without copying it.
174
175
  */
175
- if (!((data - (const md5_byte_t *)0) & 3)) {
176
+ if (!((reinterpret_cast<uintptr_t>(data)) & 3)) {
176
177
  /* data are properly aligned */
177
178
  X = (const md5_word_t *)data;
178
179
  } else {
@@ -222,9 +222,45 @@ lookupKwd(const string& name)
222
222
  //
223
223
  static const string keywordList[] =
224
224
  {
225
- "None", "and", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "exec",
226
- "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass",
227
- "print", "raise", "return", "self", "try", "while", "yield"
225
+ "False",
226
+ "None",
227
+ "True",
228
+ "and",
229
+ "as",
230
+ "assert",
231
+ "async",
232
+ "await",
233
+ "break",
234
+ "case",
235
+ "class",
236
+ "continue",
237
+ "def",
238
+ "del",
239
+ "elif",
240
+ "else",
241
+ "except",
242
+ "exec",
243
+ "finally",
244
+ "for",
245
+ "from",
246
+ "global",
247
+ "if",
248
+ "import",
249
+ "in",
250
+ "is",
251
+ "lambda",
252
+ "match",
253
+ "nonlocal",
254
+ "not",
255
+ "or",
256
+ "pass",
257
+ "print",
258
+ "raise",
259
+ "return",
260
+ "try",
261
+ "while",
262
+ "with",
263
+ "yield"
228
264
  };
229
265
  bool found = binary_search(&keywordList[0],
230
266
  &keywordList[sizeof(keywordList) / sizeof(*keywordList)],
@@ -805,7 +841,20 @@ Slice::Python::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
805
841
  TypePtr ret = (*oli)->returnType();
806
842
  ParamDeclList paramList = (*oli)->parameters();
807
843
  string inParams;
844
+ string inParamsDecl;
808
845
 
846
+ // Find the last required parameter, all optional parameters after the last required parameter will use
847
+ // Ice.Unset as the default.
848
+ ParamDeclPtr lastRequiredParameter;
849
+ for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q)
850
+ {
851
+ if(!(*q)->isOutParam() && !(*q)->optional())
852
+ {
853
+ lastRequiredParameter = *q;
854
+ }
855
+ }
856
+
857
+ bool afterLastRequiredParameter = lastRequiredParameter == ICE_NULLPTR;
809
858
  for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q)
810
859
  {
811
860
  if(!(*q)->isOutParam())
@@ -813,17 +862,29 @@ Slice::Python::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
813
862
  if(!inParams.empty())
814
863
  {
815
864
  inParams.append(", ");
865
+ inParamsDecl.append(", ");
866
+ }
867
+ string param = fixIdent((*q)->name());
868
+ inParams.append(param);
869
+ if(afterLastRequiredParameter)
870
+ {
871
+ param += "=Ice.Unset";
872
+ }
873
+ inParamsDecl.append(param);
874
+
875
+ if(*q == lastRequiredParameter)
876
+ {
877
+ afterLastRequiredParameter = true;
816
878
  }
817
- inParams.append(fixIdent((*q)->name()));
818
879
  }
819
880
  }
820
881
 
821
882
  _out << sp;
822
883
  writeDocstring(*oli, DocSync, false);
823
884
  _out << nl << "def " << fixedOpName << "(self";
824
- if(!inParams.empty())
885
+ if(!inParamsDecl.empty())
825
886
  {
826
- _out << ", " << inParams;
887
+ _out << ", " << inParamsDecl;
827
888
  }
828
889
  const string contextParamName = getEscapedParamName(*oli, "context");
829
890
  _out << ", " << contextParamName << "=None):";
data/ice.gemspec CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'zeroc-ice'
7
- s.version = '3.7.7'
7
+ s.version = '3.7.9'
8
8
  s.summary = "ZeroC Ice for Ruby"
9
9
  s.description = <<-eos
10
10
  The Internet Communications Engine (Ice) provides a robust, proven
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Current.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Endpoint.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/EndpointF.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/FacetMap.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Identity.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Locator.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/LocatorF.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Logger.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/LoggerF.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Metrics.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Plugin.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/PluginF.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #
data/lib/Ice/Process.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright (c) ZeroC, Inc. All rights reserved.
4
4
  #
5
5
  #
6
- # Ice version 3.7.7
6
+ # Ice version 3.7.9
7
7
  #
8
8
  # <auto-generated>
9
9
  #