From c2856e576efdf473c7c34b6c7c2558fa433cad27 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Thu, 26 Feb 2009 12:48:57 +0000 Subject: [PATCH] Socket: Move shutdown from SocketProtocol::close() to INetSocketProtocol::close() --- Socket/Protocols/INet/TCPSocketProtocol.cc | 9 ++++++++- Socket/Protocols/INet/TCPSocketProtocol.hh | 1 + Socket/SocketProtocol.cc | 2 -- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Socket/Protocols/INet/TCPSocketProtocol.cc b/Socket/Protocols/INet/TCPSocketProtocol.cc index 781b5e645..5f49a4498 100644 --- a/Socket/Protocols/INet/TCPSocketProtocol.cc +++ b/Socket/Protocols/INet/TCPSocketProtocol.cc @@ -79,7 +79,14 @@ prefix_ void senf::TCPSocketProtocol::shutdown(ShutType type) const { if (::shutdown(fd(), type) < 0) - SENF_THROW_SYSTEM_EXCEPTION(""); + SENF_THROW_SYSTEM_EXCEPTION("::shutdown()"); +} + +prefix_ void senf::TCPSocketProtocol::close() + const +{ + shutdown(ShutRDWR); + INetSocketProtocol::close(); } prefix_ unsigned senf::TCPSocketProtocol::available() diff --git a/Socket/Protocols/INet/TCPSocketProtocol.hh b/Socket/Protocols/INet/TCPSocketProtocol.hh index d11578c33..91021a02f 100644 --- a/Socket/Protocols/INet/TCPSocketProtocol.hh +++ b/Socket/Protocols/INet/TCPSocketProtocol.hh @@ -66,6 +66,7 @@ namespace senf { ///\name Abstract Interface Implementation ///@{ + void close() const; unsigned available() const; bool eof() const; diff --git a/Socket/SocketProtocol.cc b/Socket/SocketProtocol.cc index 67ed3407a..5e15222aa 100644 --- a/Socket/SocketProtocol.cc +++ b/Socket/SocketProtocol.cc @@ -37,8 +37,6 @@ prefix_ void senf::SocketProtocol::close() const { - if (::shutdown(body().fd(),SHUT_RDWR) < 0) - SENF_THROW_SYSTEM_EXCEPTION("::shutdown(socket_fd)"); if (::close(body().fd()) < 0) SENF_THROW_SYSTEM_EXCEPTION("::close(socket_fd)"); } -- GitLab