diff --git a/source/mijin/net/socket.cpp b/source/mijin/net/socket.cpp index 0cb4fa9..1fba0a5 100644 --- a/source/mijin/net/socket.cpp +++ b/source/mijin/net/socket.cpp @@ -22,6 +22,8 @@ StreamError translateErrno() MIJIN_NOEXCEPT { case EIO: return StreamError::IO_ERROR; + case ECONNREFUSED: + return StreamError::CONNECTION_REFUSED; default: return StreamError::UNKNOWN_ERROR; } @@ -454,7 +456,7 @@ void TCPServerSocket::close() MIJIN_NOEXCEPT handle_ = INVALID_SOCKET_HANDLE; } -Task>> TCPServerSocket::c_waitForConnection() MIJIN_NOEXCEPT +Task>> TCPServerSocket::c_waitForConnection() MIJIN_NOEXCEPT { while (isListening()) { diff --git a/source/mijin/net/socket.hpp b/source/mijin/net/socket.hpp index 04122ff..45bb315 100644 --- a/source/mijin/net/socket.hpp +++ b/source/mijin/net/socket.hpp @@ -39,23 +39,8 @@ protected: public: virtual ~Socket() MIJIN_NOEXCEPT = default; - virtual Stream& getStream() MIJIN_NOEXCEPT = 0; -}; - -class ServerSocket -{ -protected: - ServerSocket() MIJIN_NOEXCEPT = default; - ServerSocket(const ServerSocket&) MIJIN_NOEXCEPT = default; - ServerSocket(ServerSocket&&) MIJIN_NOEXCEPT = default; - - ServerSocket& operator=(const ServerSocket&) MIJIN_NOEXCEPT = default; - ServerSocket& operator=(ServerSocket&&) MIJIN_NOEXCEPT = default; -public: - virtual ~ServerSocket() MIJIN_NOEXCEPT = default; - virtual void close() MIJIN_NOEXCEPT = 0; - virtual Task>> c_waitForConnection() MIJIN_NOEXCEPT = 0; + virtual Stream& getStream() MIJIN_NOEXCEPT = 0; }; class TCPStream : public Stream @@ -99,13 +84,13 @@ public: } return StreamError::UNKNOWN_ERROR; } - void close() MIJIN_NOEXCEPT { stream_.close(); } + void close() MIJIN_NOEXCEPT override { stream_.close(); } [[nodiscard]] bool isOpen() const MIJIN_NOEXCEPT { return stream_.isOpen(); } friend class TCPServerSocket; }; -class TCPServerSocket : public ServerSocket +class TCPServerSocket { private: socket_handle_t handle_ = INVALID_SOCKET_HANDLE; @@ -119,10 +104,10 @@ public: } return StreamError::UNKNOWN_ERROR; } - void close() MIJIN_NOEXCEPT override; + void close() MIJIN_NOEXCEPT; [[nodiscard]] bool isListening() const MIJIN_NOEXCEPT { return handle_ >= 0; } - Task>> c_waitForConnection() MIJIN_NOEXCEPT override; + Task>> c_waitForConnection() MIJIN_NOEXCEPT; }; }