summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/TcpAcceptor.cpp4
-rw-r--r--cpp/src/Ice/TcpAcceptor.h2
-rw-r--r--cpp/src/Ice/TcpEndpointI.cpp2
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp3
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);