diff --git a/include/frnetlib/Socket.h b/include/frnetlib/Socket.h index 0a4395c..bd12d1e 100644 --- a/include/frnetlib/Socket.h +++ b/include/frnetlib/Socket.h @@ -135,6 +135,17 @@ namespace fr */ virtual int32_t get_socket_descriptor() const = 0; + + /*! + * Calls the shutdown syscall on the socket. + * So you can receive data but not send. + * + * This can be called on a blocking socket to force + * it to immediately return (you might want to do this if + * you're exiting and need the blocking socket to return). + */ + void shutdown(); + protected: std::string remote_address; bool is_blocking; diff --git a/include/frnetlib/TcpSocket.h b/include/frnetlib/TcpSocket.h index 3ccb835..281ef64 100644 --- a/include/frnetlib/TcpSocket.h +++ b/include/frnetlib/TcpSocket.h @@ -91,16 +91,6 @@ public: */ int32_t get_socket_descriptor() const override; - /*! - * Calls the shutdown syscall on the socket. - * So you can receive data but not send. - * - * This can be called on a blocking socket to force - * it to immediately return (you might want to do this if - * you're exiting and need the blocking socket to return). - */ - void shutdown(); - protected: std::string unprocessed_buffer; std::unique_ptr recv_buffer; diff --git a/src/Socket.cpp b/src/Socket.cpp index 379a742..a913422 100644 --- a/src/Socket.cpp +++ b/src/Socket.cpp @@ -80,4 +80,9 @@ namespace fr } return Socket::Status::Success; } + + void Socket::shutdown() + { + ::shutdown(get_socket_descriptor(), 0); + } } \ No newline at end of file diff --git a/src/TcpSocket.cpp b/src/TcpSocket.cpp index d039486..d7907c0 100644 --- a/src/TcpSocket.cpp +++ b/src/TcpSocket.cpp @@ -156,10 +156,4 @@ namespace fr { return socket_descriptor; } - - void TcpSocket::shutdown() - { - ::shutdown(socket_descriptor, 0); - } - } \ No newline at end of file