zeroc-ice 3.6.2 → 3.6.3

Sign up to get free protection for your applications and to get access to all the features.
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