diff options
Diffstat (limited to 'cpp/src/IceSSL')
-rw-r--r-- | cpp/src/IceSSL/AcceptorI.cpp | 5 | ||||
-rw-r--r-- | cpp/src/IceSSL/EndpointI.cpp | 9 | ||||
-rw-r--r-- | cpp/src/IceSSL/EndpointI.h | 4 | ||||
-rw-r--r-- | cpp/src/IceSSL/Instance.cpp | 6 | ||||
-rw-r--r-- | cpp/src/IceSSL/Instance.h | 1 |
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; |