summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ConnectionFactory.cpp')
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp20
1 files changed, 3 insertions, 17 deletions
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 38bd441a2d9..4301b23182e 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -188,15 +188,8 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
//
try
{
- vector<ConnectorPtr> cons = (*p)->connectors();
+ vector<ConnectorPtr> cons = (*p)->connectors(selType);
assert(!cons.empty());
-
- if(selType == Random)
- {
- RandomNumberGenerator rng;
- random_shuffle(cons.begin(), cons.end(), rng);
- }
-
for(vector<ConnectorPtr>::const_iterator r = cons.begin(); r != cons.end(); ++r)
{
assert(*r);
@@ -1009,14 +1002,7 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartFailed(c
void
IceInternal::OutgoingConnectionFactory::ConnectCallback::connectors(const vector<ConnectorPtr>& connectors)
{
- vector<ConnectorPtr> cons = connectors;
- if(_selType == Random)
- {
- RandomNumberGenerator rng;
- random_shuffle(cons.begin(), cons.end(), rng);
- }
-
- for(vector<ConnectorPtr>::const_iterator p = cons.begin(); p != cons.end(); ++p)
+ for(vector<ConnectorPtr>::const_iterator p = connectors.begin(); p != connectors.end(); ++p)
{
_connectors.push_back(ConnectorInfo(*p, *_endpointsIter));
}
@@ -1089,7 +1075,7 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::nextEndpoint()
try
{
assert(_endpointsIter != _endpoints.end());
- (*_endpointsIter)->connectors_async(this);
+ (*_endpointsIter)->connectors_async(_selType, this);
}
catch(const Ice::LocalException& ex)
{