From 2834944fc23a4372eaf8bc25013b3d1585c8241d Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Tue, 22 Apr 2014 14:43:02 -0400 Subject: [PATCH] Bug1829 --- src/internet/model/tcp-socket-base.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/internet/model/tcp-socket-base.cc b/src/internet/model/tcp-socket-base.cc index 35afc5309..c2b70b0f5 100644 --- a/src/internet/model/tcp-socket-base.cc +++ b/src/internet/model/tcp-socket-base.cc @@ -264,7 +264,11 @@ TcpSocketBase::Bind (void) m_errno = ERROR_ADDRNOTAVAIL; return -1; } - m_tcp->m_sockets.push_back (this); + + if (std::find(m_tcp->m_sockets.begin(), m_tcp->m_sockets.end(), this) == m_tcp->m_sockets.end()) + { + m_tcp->m_sockets.push_back (this); + } return SetupCallback (); } @@ -278,7 +282,11 @@ TcpSocketBase::Bind6 (void) m_errno = ERROR_ADDRNOTAVAIL; return -1; } - m_tcp->m_sockets.push_back (this); + + if (std::find(m_tcp->m_sockets.begin(), m_tcp->m_sockets.end(), this) == m_tcp->m_sockets.end()) + { + m_tcp->m_sockets.push_back (this); + } return SetupCallback (); } @@ -346,7 +354,11 @@ TcpSocketBase::Bind (const Address &address) m_errno = ERROR_INVAL; return -1; } - m_tcp->m_sockets.push_back (this); + + if (std::find(m_tcp->m_sockets.begin(), m_tcp->m_sockets.end(), this) == m_tcp->m_sockets.end()) + { + m_tcp->m_sockets.push_back (this); + } NS_LOG_LOGIC ("TcpSocketBase " << this << " got an endpoint: " << m_endPoint); return SetupCallback ();