From 2421a8b72581790897651d5a18b0aa148c0ede0f Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Mon, 30 Jun 2025 23:45:27 -0400 Subject: [PATCH] refactor: Make throwError and throwNameError members of IArchNetwork make throwError and throwNameError noreturn remove unused extra private section in IArchNetwork subclasses --- src/lib/arch/IArchNetwork.h | 11 +++++++++++ src/lib/arch/unix/ArchNetworkBSD.cpp | 4 ++-- src/lib/arch/unix/ArchNetworkBSD.h | 5 ++--- src/lib/arch/win32/ArchNetworkWinsock.cpp | 4 ++-- src/lib/arch/win32/ArchNetworkWinsock.h | 5 ++--- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/lib/arch/IArchNetwork.h b/src/lib/arch/IArchNetwork.h index 1af270f4e..d3d45cdb3 100644 --- a/src/lib/arch/IArchNetwork.h +++ b/src/lib/arch/IArchNetwork.h @@ -274,4 +274,15 @@ public: //@} virtual void init() = 0; + +private: + /** + * @brief throwError, Used to throw network errors + */ + [[noreturn]] virtual void throwError(int) const = 0; + + /** + * @brief throwNameError, Errors related to client names. + */ + [[noreturn]] virtual void throwNameError(int) const = 0; }; diff --git a/src/lib/arch/unix/ArchNetworkBSD.cpp b/src/lib/arch/unix/ArchNetworkBSD.cpp index 9e3d31760..e706c82aa 100644 --- a/src/lib/arch/unix/ArchNetworkBSD.cpp +++ b/src/lib/arch/unix/ArchNetworkBSD.cpp @@ -742,7 +742,7 @@ const int *ArchNetworkBSD::getUnblockPipeForThread(ArchThread thread) return unblockPipe; } -void ArchNetworkBSD::throwError(int err) const +[[noreturn]] void ArchNetworkBSD::throwError(int err) const { switch (err) { case EINTR: @@ -813,7 +813,7 @@ void ArchNetworkBSD::throwError(int err) const } } -void ArchNetworkBSD::throwNameError(int err) const +[[noreturn]] void ArchNetworkBSD::throwNameError(int err) const { static const char *s_msg[] = { "The specified host is unknown", "The requested name is valid but does not have an IP address", diff --git a/src/lib/arch/unix/ArchNetworkBSD.h b/src/lib/arch/unix/ArchNetworkBSD.h index ce3d844f8..5cbf35b3a 100644 --- a/src/lib/arch/unix/ArchNetworkBSD.h +++ b/src/lib/arch/unix/ArchNetworkBSD.h @@ -104,10 +104,9 @@ private: const int *getUnblockPipe(); const int *getUnblockPipeForThread(ArchThread); void setBlockingOnSocket(int fd, bool blocking) const; - void throwError(int) const; - void throwNameError(int) const; + [[noreturn]] void throwError(int) const override; + [[noreturn]] void throwNameError(int) const override; -private: std::shared_ptr m_pDeps; std::mutex m_mutex; }; diff --git a/src/lib/arch/win32/ArchNetworkWinsock.cpp b/src/lib/arch/win32/ArchNetworkWinsock.cpp index 686cf30d2..a1f9fea8e 100644 --- a/src/lib/arch/win32/ArchNetworkWinsock.cpp +++ b/src/lib/arch/win32/ArchNetworkWinsock.cpp @@ -840,7 +840,7 @@ bool ArchNetworkWinsock::isEqualAddr(ArchNetAddress a, ArchNetAddress b) return (a == b || (a->m_len == b->m_len && memcmp(&a->m_addr, &b->m_addr, a->m_len) == 0)); } -void ArchNetworkWinsock::throwError(int err) +[[noreturn]] void ArchNetworkWinsock::throwError(int err) const { switch (err) { case WSAEACCES: @@ -910,7 +910,7 @@ void ArchNetworkWinsock::throwError(int err) } } -void ArchNetworkWinsock::throwNameError(int err) +[[noreturn]] void ArchNetworkWinsock::throwNameError(int err) const { switch (err) { case WSAHOST_NOT_FOUND: diff --git a/src/lib/arch/win32/ArchNetworkWinsock.h b/src/lib/arch/win32/ArchNetworkWinsock.h index c0f15a8ae..a1785ff2a 100644 --- a/src/lib/arch/win32/ArchNetworkWinsock.h +++ b/src/lib/arch/win32/ArchNetworkWinsock.h @@ -92,10 +92,9 @@ private: void setBlockingOnSocket(SOCKET, bool blocking); - void throwError(int); - void throwNameError(int); + [[noreturn]] void throwError(int) const override; + [[noreturn]] void throwNameError(int) const override; -private: using EventList = std::list; std::mutex m_mutex;