diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/TcpAcceptor.cpp | 4 | ||||
-rw-r--r-- | cpp/src/Ice/TcpAcceptor.h | 2 | ||||
-rw-r--r-- | cpp/src/Ice/TcpEndpointI.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.cpp | 3 |
4 files changed, 7 insertions, 4 deletions
diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp index ee89a795971..147b3aca825 100644 --- a/cpp/src/Ice/TcpAcceptor.cpp +++ b/cpp/src/Ice/TcpAcceptor.cpp @@ -183,11 +183,11 @@ IceInternal::TcpAcceptor::effectivePort() const return getPort(_addr); } -IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port) : +IceInternal::TcpAcceptor::TcpAcceptor(const InstancePtr& instance, const string& host, int port, ProtocolSupport protocol) : _instance(instance), _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), - _addr(getAddressForServer(host, port, instance->protocolSupport())) + _addr(getAddressForServer(host, port, protocol)) #ifdef ICE_USE_IOCP , _acceptFd(INVALID_SOCKET), _info(SocketOperationRead) diff --git a/cpp/src/Ice/TcpAcceptor.h b/cpp/src/Ice/TcpAcceptor.h index 068b069a33c..e8f60766180 100644 --- a/cpp/src/Ice/TcpAcceptor.h +++ b/cpp/src/Ice/TcpAcceptor.h @@ -47,7 +47,7 @@ public: private: - TcpAcceptor(const InstancePtr&, const std::string&, int); + TcpAcceptor(const InstancePtr&, const std::string&, int, ProtocolSupport); virtual ~TcpAcceptor(); friend class TcpEndpointI; diff --git a/cpp/src/Ice/TcpEndpointI.cpp b/cpp/src/Ice/TcpEndpointI.cpp index fa75de3a35b..e9f41bdd949 100644 --- a/cpp/src/Ice/TcpEndpointI.cpp +++ b/cpp/src/Ice/TcpEndpointI.cpp @@ -370,7 +370,7 @@ IceInternal::TcpEndpointI::connectors_async(const EndpointI_connectorsPtr& callb AcceptorPtr IceInternal::TcpEndpointI::acceptor(EndpointIPtr& endp, const string&) const { - TcpAcceptor* p = new TcpAcceptor(_instance, _host, _port); + TcpAcceptor* p = new TcpAcceptor(_instance, _host, _port, _instance->protocolSupport()); endp = new TcpEndpointI(_instance, _host, p->effectivePort(), _timeout, _connectionId, _compress); return p; } diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index 4c83e5e3f1b..98a8af8f041 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -658,6 +658,9 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s _write(SocketOperationWrite) #endif { + memset(&_mcastAddr, 0, sizeof(_mcastAddr)); + memset(&_peerAddr, 0, sizeof(_peerAddr)); + _fd = createSocket(true, _addr.ss_family); setBufSize(instance); setBlock(_fd, false); |