zeroc-ice 3.6.2 → 3.6.3

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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/bin/slice2rb +0 -0
  3. data/ext/Slice.cpp +32 -39
  4. data/ext/ice/cpp/include/Ice/BasicStream.h +15 -4
  5. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +2 -2
  6. data/ext/ice/cpp/include/Ice/Communicator.h +2 -2
  7. data/ext/ice/cpp/include/Ice/CommunicatorF.h +2 -2
  8. data/ext/ice/cpp/include/Ice/Connection.h +2 -2
  9. data/ext/ice/cpp/include/Ice/ConnectionF.h +2 -2
  10. data/ext/ice/cpp/include/Ice/Current.h +2 -2
  11. data/ext/ice/cpp/include/Ice/Endpoint.h +2 -2
  12. data/ext/ice/cpp/include/Ice/EndpointF.h +2 -2
  13. data/ext/ice/cpp/include/Ice/EndpointTypes.h +2 -2
  14. data/ext/ice/cpp/include/Ice/FacetMap.h +2 -2
  15. data/ext/ice/cpp/include/Ice/Identity.h +2 -2
  16. data/ext/ice/cpp/include/Ice/ImplicitContext.h +2 -2
  17. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +2 -2
  18. data/ext/ice/cpp/include/Ice/Instrumentation.h +2 -2
  19. data/ext/ice/cpp/include/Ice/InstrumentationF.h +2 -2
  20. data/ext/ice/cpp/include/Ice/LocalException.h +2 -2
  21. data/ext/ice/cpp/include/Ice/Locator.h +2 -2
  22. data/ext/ice/cpp/include/Ice/LocatorF.h +2 -2
  23. data/ext/ice/cpp/include/Ice/Logger.h +2 -2
  24. data/ext/ice/cpp/include/Ice/LoggerF.h +2 -2
  25. data/ext/ice/cpp/include/Ice/Metrics.h +2 -2
  26. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +2 -2
  27. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +2 -2
  28. data/ext/ice/cpp/include/Ice/ObjectFactory.h +2 -2
  29. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +2 -2
  30. data/ext/ice/cpp/include/Ice/Plugin.h +2 -2
  31. data/ext/ice/cpp/include/Ice/PluginF.h +2 -2
  32. data/ext/ice/cpp/include/Ice/Process.h +2 -2
  33. data/ext/ice/cpp/include/Ice/ProcessF.h +2 -2
  34. data/ext/ice/cpp/include/Ice/Properties.h +2 -2
  35. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +2 -2
  36. data/ext/ice/cpp/include/Ice/PropertiesF.h +2 -2
  37. data/ext/ice/cpp/include/Ice/RemoteLogger.h +2 -2
  38. data/ext/ice/cpp/include/Ice/Router.h +2 -2
  39. data/ext/ice/cpp/include/Ice/RouterF.h +2 -2
  40. data/ext/ice/cpp/include/Ice/ServantLocator.h +2 -2
  41. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +2 -2
  42. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +2 -2
  43. data/ext/ice/cpp/include/Ice/SlicedData.h +6 -0
  44. data/ext/ice/cpp/include/Ice/Version.h +2 -2
  45. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +2 -2
  46. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +2 -2
  47. data/ext/ice/cpp/include/IceUtil/Config.h +86 -26
  48. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
  49. data/ext/ice/cpp/include/IceUtil/Time.h +3 -2
  50. data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
  51. data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
  52. data/ext/ice/cpp/include/Slice/Util.h +5 -0
  53. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
  54. data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
  55. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
  56. data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
  57. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
  58. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +57 -42
  59. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +2 -0
  60. data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
  61. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +9 -5
  62. data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
  63. data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
  64. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
  65. data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
  66. data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
  67. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
  68. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
  69. data/ext/ice/cpp/src/Ice/Incoming.cpp +11 -4
  70. data/ext/ice/cpp/src/Ice/Instance.cpp +4 -2
  71. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
  72. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
  73. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -3
  74. data/ext/ice/cpp/src/Ice/LocalException.cpp +2 -2
  75. data/ext/ice/cpp/src/Ice/Locator.cpp +2 -2
  76. data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
  77. data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
  78. data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
  79. data/ext/ice/cpp/src/Ice/LoggerI.cpp +94 -5
  80. data/ext/ice/cpp/src/Ice/LoggerI.h +7 -1
  81. data/ext/ice/cpp/src/Ice/Metrics.cpp +2 -2
  82. data/ext/ice/cpp/src/Ice/Network.cpp +23 -7
  83. data/ext/ice/cpp/src/Ice/Network.h +1 -1
  84. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
  85. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
  86. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
  87. data/ext/ice/cpp/src/Ice/ObjectFactoryF.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/PluginManagerI.cpp +5 -0
  91. data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
  92. data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
  93. data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
  94. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
  95. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
  96. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +4 -3
  97. data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
  98. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +2 -2
  99. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +1 -1
  100. data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
  101. data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
  102. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
  103. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
  104. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
  105. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +19 -3
  106. data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
  107. data/ext/ice/cpp/src/Ice/WSConnector.h +2 -2
  108. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
  109. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +2 -2
  110. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
  111. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +2 -2
  112. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
  113. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
  114. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +54 -39
  115. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +5 -8
  116. data/ext/ice/cpp/src/IceSSL/Util.cpp +155 -4
  117. data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
  118. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +8 -0
  119. data/ext/ice/cpp/src/IceUtil/FileUtil.h +18 -5
  120. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +5 -5
  121. data/ext/ice/cpp/src/IceUtil/Time.cpp +25 -17
  122. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +5 -11
  123. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +3 -3
  124. data/ext/ice/cpp/src/Slice/Python.cpp +14 -17
  125. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +183 -48
  126. data/ext/ice/cpp/src/Slice/Ruby.cpp +6 -6
  127. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -10
  128. data/ext/ice/cpp/src/Slice/Util.cpp +28 -3
  129. data/ext/ice/mcpp/Makefile +10 -6
  130. data/ext/ice/mcpp/configed.H +3 -0
  131. data/ext/ice/mcpp/main.c +2 -2
  132. data/ext/ice/mcpp/mcpp.gyp +6 -0
  133. data/ext/ice/mcpp/support.c +1 -1
  134. data/ext/ice/mcpp/system.H +6 -1
  135. data/ext/ice/mcpp/system.c +52 -15
  136. data/ice.gemspec +1 -1
  137. data/lib/Glacier2/Metrics.rb +1 -1
  138. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  139. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  140. data/lib/Glacier2/Router.rb +1 -1
  141. data/lib/Glacier2/RouterF.rb +1 -1
  142. data/lib/Glacier2/SSLInfo.rb +1 -1
  143. data/lib/Glacier2/Session.rb +1 -1
  144. data/lib/Ice/BuiltinSequences.rb +1 -1
  145. data/lib/Ice/Communicator.rb +1 -1
  146. data/lib/Ice/CommunicatorF.rb +1 -1
  147. data/lib/Ice/Connection.rb +1 -1
  148. data/lib/Ice/ConnectionF.rb +1 -1
  149. data/lib/Ice/Current.rb +1 -1
  150. data/lib/Ice/Endpoint.rb +1 -1
  151. data/lib/Ice/EndpointF.rb +1 -1
  152. data/lib/Ice/EndpointTypes.rb +1 -1
  153. data/lib/Ice/FacetMap.rb +1 -1
  154. data/lib/Ice/Identity.rb +1 -1
  155. data/lib/Ice/ImplicitContext.rb +1 -1
  156. data/lib/Ice/ImplicitContextF.rb +1 -1
  157. data/lib/Ice/Instrumentation.rb +1 -1
  158. data/lib/Ice/InstrumentationF.rb +1 -1
  159. data/lib/Ice/LocalException.rb +1 -1
  160. data/lib/Ice/Locator.rb +1 -1
  161. data/lib/Ice/LocatorF.rb +1 -1
  162. data/lib/Ice/Logger.rb +1 -1
  163. data/lib/Ice/LoggerF.rb +1 -1
  164. data/lib/Ice/Metrics.rb +1 -1
  165. data/lib/Ice/ObjectAdapterF.rb +1 -1
  166. data/lib/Ice/ObjectFactory.rb +1 -1
  167. data/lib/Ice/ObjectFactoryF.rb +1 -1
  168. data/lib/Ice/Plugin.rb +1 -1
  169. data/lib/Ice/PluginF.rb +1 -1
  170. data/lib/Ice/Process.rb +1 -1
  171. data/lib/Ice/ProcessF.rb +1 -1
  172. data/lib/Ice/Properties.rb +1 -1
  173. data/lib/Ice/PropertiesAdmin.rb +1 -1
  174. data/lib/Ice/PropertiesF.rb +1 -1
  175. data/lib/Ice/RemoteLogger.rb +1 -1
  176. data/lib/Ice/Router.rb +1 -1
  177. data/lib/Ice/RouterF.rb +1 -1
  178. data/lib/Ice/SliceChecksumDict.rb +1 -1
  179. data/lib/Ice/Version.rb +1 -1
  180. data/lib/IceBox/IceBox.rb +1 -1
  181. data/lib/IceGrid/Admin.rb +1 -1
  182. data/lib/IceGrid/Descriptor.rb +1 -1
  183. data/lib/IceGrid/Exception.rb +1 -1
  184. data/lib/IceGrid/FileParser.rb +1 -1
  185. data/lib/IceGrid/Locator.rb +1 -1
  186. data/lib/IceGrid/Observer.rb +1 -1
  187. data/lib/IceGrid/Query.rb +1 -1
  188. data/lib/IceGrid/Registry.rb +1 -1
  189. data/lib/IceGrid/Session.rb +1 -1
  190. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  191. data/lib/IcePatch2/FileInfo.rb +1 -1
  192. data/lib/IcePatch2/FileServer.rb +1 -1
  193. data/lib/IceStorm/IceStorm.rb +1 -1
  194. data/lib/IceStorm/Metrics.rb +1 -1
  195. data/slice/Glacier2/PermissionsVerifier.ice +0 -3
  196. data/slice/Glacier2/Session.ice +2 -9
  197. data/slice/Ice/Communicator.ice +3 -3
  198. data/slice/Ice/ImplicitContext.ice +4 -5
  199. data/slice/Ice/Instrumentation.ice +26 -26
  200. data/slice/Ice/LocalException.ice +1 -1
  201. data/slice/Ice/Locator.ice +5 -3
  202. data/slice/Ice/Metrics.ice +1 -1
  203. data/slice/Ice/ObjectFactory.ice +0 -2
  204. data/slice/Ice/RemoteLogger.ice +32 -32
  205. data/slice/Ice/Router.ice +3 -0
  206. data/slice/IceGrid/Session.ice +5 -9
  207. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +7 -7
  208. data/slice/IcePatch2/FileServer.ice +28 -34
  209. metadata +30 -30
@@ -18,7 +18,7 @@
18
18
  #include <langinfo.h>
19
19
  #include <string.h> // For strerror
20
20
 
21
- #if (defined(__APPLE__) && _LIBICONV_VERSION < 0x010B) || defined(__FreeBSD__)
21
+ #if (defined(__APPLE__) && _LIBICONV_VERSION < 0x010B)
22
22
  //
23
23
  // See http://sourceware.org/bugzilla/show_bug.cgi?id=2962
24
24
  //
@@ -28,7 +28,7 @@ public:
28
28
  // No copy constructor and assignment operator necessary. The
29
29
  // automatically generated copy constructor and assignment
30
30
  // operator do the right thing.
31
-
31
+
32
32
  enum Clock { Realtime, Monotonic };
33
33
  static Time now(Clock = Realtime);
34
34
 
@@ -39,7 +39,7 @@ public:
39
39
  static Time secondsDouble(double);
40
40
  static Time milliSecondsDouble(double);
41
41
  static Time microSecondsDouble(double);
42
-
42
+
43
43
  #ifndef _WIN32
44
44
  operator timeval() const;
45
45
  #endif
@@ -54,6 +54,7 @@ public:
54
54
 
55
55
  std::string toDateTime() const;
56
56
  std::string toDuration() const;
57
+ std::string toString(const std::string&) const;
57
58
 
58
59
  Time operator-() const
59
60
  {
@@ -56,7 +56,7 @@ SLICE_API std::string getAbsolute(const Slice::ContainedPtr&, const std::string&
56
56
  //
57
57
  SLICE_API void printHeader(IceUtilInternal::Output&);
58
58
 
59
- SLICE_API int compile(int, char*[]);
59
+ SLICE_API int compile(const std::vector<std::string>&);
60
60
 
61
61
  }
62
62
  }
@@ -46,7 +46,7 @@ SLICE_API std::string getAbsolute(const Slice::ContainedPtr&, IdentStyle, const
46
46
  //
47
47
  SLICE_API void printHeader(IceUtilInternal::Output&);
48
48
 
49
- SLICE_API int compile(int, char*[]);
49
+ SLICE_API int compile(const std::vector<std::string>&);
50
50
 
51
51
  }
52
52
  }
@@ -30,6 +30,11 @@ SLICE_API void emitWarning(const std::string&, const std::string&, const std::st
30
30
  SLICE_API void emitRaw(const char*);
31
31
  SLICE_API std::vector<std::string> filterMcppWarnings(const std::string&);
32
32
  SLICE_API void printGeneratedHeader(IceUtilInternal::Output& out, const std::string&, const std::string& commentStyle = "//");
33
+ #ifdef _WIN32
34
+ SLICE_API std::vector<std::string> argvToArgs(int argc, wchar_t* argv[]);
35
+ #else
36
+ SLICE_API std::vector<std::string> argvToArgs(int argc, char* argv[]);
37
+ #endif
33
38
 
34
39
  class SLICE_API DependOutputUtil : IceUtil::noncopyable
35
40
  {
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -38,7 +38,7 @@
38
38
  # if ICE_INT_VERSION % 100 > 50
39
39
  # error Beta header file detected
40
40
  # endif
41
- # if ICE_INT_VERSION % 100 < 2
41
+ # if ICE_INT_VERSION % 100 < 3
42
42
  # error Ice patch level mismatch!
43
43
  # endif
44
44
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -33,7 +33,7 @@
33
33
  # if ICE_INT_VERSION % 100 > 50
34
34
  # error Beta header file detected
35
35
  # endif
36
- # if ICE_INT_VERSION % 100 < 2
36
+ # if ICE_INT_VERSION % 100 < 3
37
37
  # error Ice patch level mismatch!
38
38
  # endif
39
39
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -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 < 2
38
+ # if ICE_INT_VERSION % 100 < 3
39
39
  # error Ice patch level mismatch!
40
40
  # endif
41
41
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -33,7 +33,7 @@
33
33
  # if ICE_INT_VERSION % 100 > 50
34
34
  # error Beta header file detected
35
35
  # endif
36
- # if ICE_INT_VERSION % 100 < 2
36
+ # if ICE_INT_VERSION % 100 < 3
37
37
  # error Ice patch level mismatch!
38
38
  # endif
39
39
  #endif
@@ -835,26 +835,10 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartFailed(c
835
835
  const LocalException& ex)
836
836
  {
837
837
  assert(_iter != _connectors.end());
838
-
839
- if(_observer)
840
- {
841
- _observer->failed(ex.ice_name());
842
- _observer->detach();
843
- }
844
-
845
- _factory->handleConnectionException(ex, _hasMore || _iter != _connectors.end() - 1);
846
- if(dynamic_cast<const Ice::CommunicatorDestroyedException*>(&ex)) // No need to continue.
847
- {
848
- _factory->finishGetConnection(_connectors, ex, this);
849
- }
850
- else if(++_iter != _connectors.end()) // Try the next connector.
838
+ if(connectionStartFailedImpl(ex))
851
839
  {
852
840
  nextConnector();
853
841
  }
854
- else
855
- {
856
- _factory->finishGetConnection(_connectors, ex, this);
857
- }
858
842
  }
859
843
 
860
844
  //
@@ -979,40 +963,46 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::getConnection()
979
963
  void
980
964
  IceInternal::OutgoingConnectionFactory::ConnectCallback::nextConnector()
981
965
  {
982
- Ice::ConnectionIPtr connection;
983
- try
966
+ while(true)
984
967
  {
985
-
986
- const CommunicatorObserverPtr& obsv = _factory->_instance->initializationData().observer;
987
- if(obsv)
968
+ try
988
969
  {
989
- _observer = obsv->getConnectionEstablishmentObserver(_iter->endpoint, _iter->connector->toString());
990
- if(_observer)
970
+ const CommunicatorObserverPtr& obsv = _factory->_instance->initializationData().observer;
971
+ if(obsv)
991
972
  {
992
- _observer->attach();
973
+ _observer = obsv->getConnectionEstablishmentObserver(_iter->endpoint, _iter->connector->toString());
974
+ if(_observer)
975
+ {
976
+ _observer->attach();
977
+ }
993
978
  }
994
- }
995
979
 
996
- assert(_iter != _connectors.end());
980
+ assert(_iter != _connectors.end());
997
981
 
998
- if(_instance->traceLevels()->network >= 2)
999
- {
1000
- Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat);
1001
- out << "trying to establish " << _iter->endpoint->protocol() << " connection to "
1002
- << _iter->connector->toString();
982
+ if(_instance->traceLevels()->network >= 2)
983
+ {
984
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat);
985
+ out << "trying to establish " << _iter->endpoint->protocol() << " connection to "
986
+ << _iter->connector->toString();
987
+ }
988
+ Ice::ConnectionIPtr connection = _factory->createConnection(_iter->connector->connect(), *_iter);
989
+ connection->start(this);
1003
990
  }
1004
- connection = _factory->createConnection(_iter->connector->connect(), *_iter);
1005
- connection->start(this);
1006
- }
1007
- catch(const Ice::LocalException& ex)
1008
- {
1009
- if(_instance->traceLevels()->network >= 2)
991
+ catch(const Ice::LocalException& ex)
1010
992
  {
1011
- Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat);
1012
- out << "failed to establish " << _iter->endpoint->protocol() << " connection to "
1013
- << _iter->connector->toString() << "\n" << ex;
993
+ if(_instance->traceLevels()->network >= 2)
994
+ {
995
+ Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat);
996
+ out << "failed to establish " << _iter->endpoint->protocol() << " connection to "
997
+ << _iter->connector->toString() << "\n" << ex;
998
+ }
999
+
1000
+ if(connectionStartFailedImpl(ex))
1001
+ {
1002
+ continue; // More connectors to try, continue.
1003
+ }
1014
1004
  }
1015
- connectionStartFailed(connection, ex);
1005
+ break;
1016
1006
  }
1017
1007
  }
1018
1008
 
@@ -1071,6 +1061,31 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::operator<(const Connect
1071
1061
  return this < &rhs;
1072
1062
  }
1073
1063
 
1064
+ bool
1065
+ IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartFailedImpl(const Ice::LocalException& ex)
1066
+ {
1067
+ if(_observer)
1068
+ {
1069
+ _observer->failed(ex.ice_name());
1070
+ _observer->detach();
1071
+ }
1072
+
1073
+ _factory->handleConnectionException(ex, _hasMore || _iter != _connectors.end() - 1);
1074
+ if(dynamic_cast<const Ice::CommunicatorDestroyedException*>(&ex)) // No need to continue.
1075
+ {
1076
+ _factory->finishGetConnection(_connectors, ex, this);
1077
+ }
1078
+ else if(++_iter != _connectors.end()) // Try the next connector.
1079
+ {
1080
+ return true;
1081
+ }
1082
+ else
1083
+ {
1084
+ _factory->finishGetConnection(_connectors, ex, this);
1085
+ }
1086
+ return false;
1087
+ }
1088
+
1074
1089
  void
1075
1090
  IceInternal::IncomingConnectionFactory::activate()
1076
1091
  {
@@ -116,6 +116,8 @@ private:
116
116
 
117
117
  private:
118
118
 
119
+ bool connectionStartFailedImpl(const Ice::LocalException&);
120
+
119
121
  const InstancePtr _instance;
120
122
  const OutgoingConnectionFactoryPtr _factory;
121
123
  const std::vector<EndpointIPtr> _endpoints;
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -15,6 +15,10 @@
15
15
  # include <dlfcn.h>
16
16
  #endif
17
17
 
18
+ #if defined(ICE_CPP11) && defined(__GNUC__) && (__GNUC__ < 6) && defined(__GLIBCXX__)
19
+ # define ICE_LIBSUFFIX "++11"
20
+ #endif
21
+
18
22
  using namespace Ice;
19
23
  using namespace IceInternal;
20
24
  using namespace std;
@@ -89,8 +93,8 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc
89
93
  if(comma == string::npos)
90
94
  {
91
95
  libName = libSpec;
92
- # if defined(ICE_CPP11) && defined(__GLIBCXX__)
93
- libName += "++11";
96
+ # ifdef ICE_LIBSUFFIX
97
+ libName += ICE_LIBSUFFIX;
94
98
  # endif
95
99
  if(useIceVersion)
96
100
  {
@@ -119,9 +123,9 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc
119
123
  return 0;
120
124
  }
121
125
  libName = libSpec.substr(0, comma);
122
- # if defined(ICE_CPP11) && defined(__GLIBCXX__)
123
- libName += "++11";
124
- # endif
126
+ #ifdef ICE_LIBSUFFIX
127
+ libName += ICE_LIBSUFFIX;
128
+ #endif
125
129
  version = libSpec.substr(comma + 1);
126
130
  }
127
131
 
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -33,7 +33,7 @@
33
33
  # if ICE_INT_VERSION % 100 > 50
34
34
  # error Beta header file detected
35
35
  # endif
36
- # if ICE_INT_VERSION % 100 < 2
36
+ # if ICE_INT_VERSION % 100 < 3
37
37
  # error Ice patch level mismatch!
38
38
  # endif
39
39
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // **********************************************************************
9
9
  //
10
- // Ice version 3.6.2
10
+ // Ice version 3.6.3
11
11
  //
12
12
  // <auto-generated>
13
13
  //
@@ -34,7 +34,7 @@
34
34
  # if ICE_INT_VERSION % 100 > 50
35
35
  # error Beta header file detected
36
36
  # endif
37
- # if ICE_INT_VERSION % 100 < 2
37
+ # if ICE_INT_VERSION % 100 < 3
38
38
  # error Ice patch level mismatch!
39
39
  # endif
40
40
  #endif