summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/IPEndpointI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/IPEndpointI.cpp')
-rw-r--r--cpp/src/Ice/IPEndpointI.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/cpp/src/Ice/IPEndpointI.cpp b/cpp/src/Ice/IPEndpointI.cpp
index 10983ccc672..a33405d8118 100644
--- a/cpp/src/Ice/IPEndpointI.cpp
+++ b/cpp/src/Ice/IPEndpointI.cpp
@@ -623,23 +623,20 @@ IceInternal::EndpointHostResolver::run()
}
}
- r.callback->connectors(r.endpoint->connectors(getAddresses(r.host,
- r.port,
- protocol,
- r.selType,
- _preferIPv6,
- true),
- networkProxy));
+ vector<Address> addresses = getAddresses(r.host, r.port, protocol, r.selType, _preferIPv6, true);
+ if(r.observer)
+ {
+ r.observer->detach();
+ r.observer = 0;
+ }
+
+ r.callback->connectors(r.endpoint->connectors(addresses, networkProxy));
if(threadObserver)
{
threadObserver->stateChanged(ThreadStateInUseForOther, ThreadStateIdle);
}
- if(r.observer)
- {
- r.observer->detach();
- }
}
catch(const Ice::LocalException& ex)
{