summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/EndpointI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-12-19 22:06:38 +0100
committerBenoit Foucher <benoit@zeroc.com>2007-12-19 22:06:38 +0100
commitf6121ea342641eb36f7cd67c7c877a1c70ec3055 (patch)
treeb545f3a2548b81fd8dd56a87a58f98b992c0066b /cpp/src/Ice/EndpointI.cpp
parentMerge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff)
downloadice-f6121ea342641eb36f7cd67c7c877a1c70ec3055.tar.bz2
ice-f6121ea342641eb36f7cd67c7c877a1c70ec3055.tar.xz
ice-f6121ea342641eb36f7cd67c7c877a1c70ec3055.zip
- Merge IPv6 support from Dwayne's branch.
- Reviewed and fixed IPv6 bugs. - Fixed bug in the outgoing connection factory where an assert could be triggered if the proxy contained identical endpoints
Diffstat (limited to 'cpp/src/Ice/EndpointI.cpp')
-rw-r--r--cpp/src/Ice/EndpointI.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp
index 2ae93da7362..8edb81f99a1 100644
--- a/cpp/src/Ice/EndpointI.cpp
+++ b/cpp/src/Ice/EndpointI.cpp
@@ -19,7 +19,7 @@ Ice::LocalObject* IceInternal::upCast(EndpointI* p) { return p; }
IceUtil::Shared* IceInternal::upCast(EndpointHostResolver* p) { return p; }
vector<ConnectorPtr>
-IceInternal::EndpointI::connectors(const vector<struct sockaddr_in>& addrs) const
+IceInternal::EndpointI::connectors(const vector<struct sockaddr_storage>& addrs) const
{
//
// This method must be extended by endpoints which use the EndpointHostResolver to create
@@ -37,7 +37,7 @@ IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& insta
}
void
-IceInternal::EndpointHostResolver::resolve(const string& host, int port, const EndpointIPtr& endpoint,
+IceInternal::EndpointHostResolver::resolve(const string& host, int port, const EndpointIPtr& endpoint,
const EndpointI_connectorsPtr& callback)
{
//
@@ -46,7 +46,7 @@ IceInternal::EndpointHostResolver::resolve(const string& host, int port, const E
//
try
{
- vector<struct sockaddr_in> addrs = getAddresses(host, port, false);
+ vector<struct sockaddr_storage> addrs = getAddresses(host, port, _instance->protocolSupport(), false);
if(!addrs.empty())
{
callback->connectors(endpoint->connectors(addrs));
@@ -109,7 +109,9 @@ IceInternal::EndpointHostResolver::run()
_queue.pop_front();
}
- resolve.callback->connectors(resolve.endpoint->connectors(getAddresses(resolve.host, resolve.port)));
+ resolve.callback->connectors(
+ resolve.endpoint->connectors(
+ getAddresses(resolve.host, resolve.port, _instance->protocolSupport(), true)));
}
for(deque<ResolveEntry>::const_iterator p = _queue.begin(); p != _queue.end(); ++p)