From 7d21df488f57ad2ae09e245f83c71f8b2905b970 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Wed, 5 Aug 2009 20:53:44 -0700 Subject: [PATCH] Implement UdpSocketImpl::Close () --- src/internet-stack/udp-socket-impl.cc | 9 ++++++++- src/node/socket.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/internet-stack/udp-socket-impl.cc b/src/internet-stack/udp-socket-impl.cc index 903b76bbd..c2a52df43 100644 --- a/src/internet-stack/udp-socket-impl.cc +++ b/src/internet-stack/udp-socket-impl.cc @@ -203,9 +203,16 @@ UdpSocketImpl::ShutdownRecv (void) } int -UdpSocketImpl::Close(void) +UdpSocketImpl::Close (void) { NS_LOG_FUNCTION_NOARGS (); + if (m_shutdownRecv == true && m_shutdownSend == true) + { + m_errno = Socket::ERROR_BADF; + return -1; + } + m_shutdownRecv = true; + m_shutdownSend = true; return 0; } diff --git a/src/node/socket.h b/src/node/socket.h index fbc4b723c..ef529adeb 100644 --- a/src/node/socket.h +++ b/src/node/socket.h @@ -184,6 +184,7 @@ public: /** * \brief Close a socket. + * \returns zero on success, -1 on failure. * * After the Close call, the socket is no longer valid, and cannot * safely be used for subsequent operations.