summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceSSL')
-rw-r--r--cpp/src/IceSSL/AcceptorI.cpp5
-rw-r--r--cpp/src/IceSSL/EndpointI.cpp9
-rw-r--r--cpp/src/IceSSL/EndpointI.h4
-rw-r--r--cpp/src/IceSSL/Instance.cpp6
-rw-r--r--cpp/src/IceSSL/Instance.h1
5 files changed, 17 insertions, 8 deletions
diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp
index d4bb455241f..105cd763740 100644
--- a/cpp/src/IceSSL/AcceptorI.cpp
+++ b/cpp/src/IceSSL/AcceptorI.cpp
@@ -211,7 +211,7 @@ IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const string& adapterN
_instance(instance),
_adapterName(adapterName),
_logger(instance->communicator()->getLogger()),
- _addr(IceInternal::getAddressForServer(host, port, instance->protocolSupport()))
+ _addr(IceInternal::getAddressForServer(host, port, instance->protocolSupport(), instance->preferIPv6()))
#ifdef ICE_USE_IOCP
, _acceptFd(INVALID_SOCKET),
_info(IceInternal::SocketOperationRead)
@@ -223,7 +223,8 @@ IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const string& adapterN
_backlog = instance->communicator()->getProperties()->getPropertyAsIntWithDefault("Ice.TCP.Backlog", 511);
#endif
- _fd = IceInternal::createSocket(false, _addr);
+ IceInternal::ProtocolSupport protocol = instance->protocolSupport();
+ _fd = IceInternal::createServerSocket(false, _addr, protocol);
#ifdef ICE_USE_IOCP
_acceptBuf.resize((sizeof(sockaddr_storage) + 16) * 2);
#endif
diff --git a/cpp/src/IceSSL/EndpointI.cpp b/cpp/src/IceSSL/EndpointI.cpp
index 74818abb5a1..773f39a96a4 100644
--- a/cpp/src/IceSSL/EndpointI.cpp
+++ b/cpp/src/IceSSL/EndpointI.cpp
@@ -361,15 +361,16 @@ IceSSL::EndpointI::transceiver(IceInternal::EndpointIPtr& endp) const
}
vector<IceInternal::ConnectorPtr>
-IceSSL::EndpointI::connectors() const
+IceSSL::EndpointI::connectors(Ice::EndpointSelectionType selType) const
{
- return _instance->endpointHostResolver()->resolve(_host, _port, const_cast<EndpointI*>(this));
+ return _instance->endpointHostResolver()->resolve(_host, _port, selType, const_cast<EndpointI*>(this));
}
void
-IceSSL::EndpointI::connectors_async(const IceInternal::EndpointI_connectorsPtr& callback) const
+IceSSL::EndpointI::connectors_async(Ice::EndpointSelectionType selType,
+ const IceInternal::EndpointI_connectorsPtr& callback) const
{
- _instance->endpointHostResolver()->resolve(_host, _port, const_cast<EndpointI*>(this), callback);
+ _instance->endpointHostResolver()->resolve(_host, _port, selType, const_cast<EndpointI*>(this), callback);
}
IceInternal::AcceptorPtr
diff --git a/cpp/src/IceSSL/EndpointI.h b/cpp/src/IceSSL/EndpointI.h
index b0473431bdf..7a8d481e61b 100644
--- a/cpp/src/IceSSL/EndpointI.h
+++ b/cpp/src/IceSSL/EndpointI.h
@@ -40,8 +40,8 @@ public:
virtual bool datagram() const;
virtual bool secure() const;
virtual IceInternal::TransceiverPtr transceiver(IceInternal::EndpointIPtr&) const;
- virtual std::vector<IceInternal::ConnectorPtr> connectors() const;
- virtual void connectors_async(const IceInternal::EndpointI_connectorsPtr&) const;
+ virtual std::vector<IceInternal::ConnectorPtr> connectors(Ice::EndpointSelectionType) const;
+ virtual void connectors_async(Ice::EndpointSelectionType, const IceInternal::EndpointI_connectorsPtr&) const;
virtual IceInternal::AcceptorPtr acceptor(IceInternal::EndpointIPtr&, const std::string&) const;
virtual std::vector<IceInternal::EndpointIPtr> expand() const;
virtual bool equivalent(const IceInternal::EndpointIPtr&) const;
diff --git a/cpp/src/IceSSL/Instance.cpp b/cpp/src/IceSSL/Instance.cpp
index 8e7f79a9eed..22e1f9c9dba 100644
--- a/cpp/src/IceSSL/Instance.cpp
+++ b/cpp/src/IceSSL/Instance.cpp
@@ -806,6 +806,12 @@ IceSSL::Instance::protocolSupport() const
return _facade->getProtocolSupport();
}
+bool
+IceSSL::Instance::preferIPv6() const
+{
+ return _facade->preferIPv6();
+}
+
string
IceSSL::Instance::defaultHost() const
{
diff --git a/cpp/src/IceSSL/Instance.h b/cpp/src/IceSSL/Instance.h
index 78bab536310..ea9049d69da 100644
--- a/cpp/src/IceSSL/Instance.h
+++ b/cpp/src/IceSSL/Instance.h
@@ -39,6 +39,7 @@ public:
Ice::CommunicatorPtr communicator() const;
IceInternal::EndpointHostResolverPtr endpointHostResolver() const;
IceInternal::ProtocolSupport protocolSupport() const;
+ bool preferIPv6() const;
std::string defaultHost() const;
Ice::EncodingVersion defaultEncoding() const;
int networkTraceLevel() const;