diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/CHANGES | 6 | ||||
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index e9c8945754f..893d8efd890 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -1,10 +1,12 @@ Changes since version 1.2.0 --------------------------- +- Fixed a problem with the random selection of SSL endpoints. + - Ice is now supported on Windows 98 SE. See INSTALL.WINDOWS. -- Fixed an incorrect complaint in the Slice parser about a change - of meaning for enumeration constant definitions. +- Fixed an incorrect complaint in the Slice parser about a change of + meaning for enumeration constant definitions. - The glacierrouter and glacierstarter processes used to abort if given a non-existent config file. diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 59b913bb774..32125a10628 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -1215,7 +1215,12 @@ IceDelegateM::Ice::Object::filterEndpoints(const vector<EndpointPtr>& allEndpoin } else { - partition(endpoints.begin(), endpoints.end(), not1(::Ice::constMemFun(&Endpoint::secure))); + // + // We must use stable_partition() instead of just simply + // partition(), because otherwise some STL implementations + // order our now randomized endpoints. + // + stable_partition(endpoints.begin(), endpoints.end(), not1(::Ice::constMemFun(&Endpoint::secure))); } return endpoints; |