From 3ad7de225efce3e76530f56bee8a8f7a75ea0f3c Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Tue, 13 Apr 2021 16:31:04 +0200 Subject: net: add new method Sock::Bind() that wraps bind() This will help to increase `Sock` usage and make more code mockable. --- src/util/sock.cpp | 5 +++++ src/util/sock.h | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'src/util') diff --git a/src/util/sock.cpp b/src/util/sock.cpp index 2029d70a37..89d7a1a7ec 100644 --- a/src/util/sock.cpp +++ b/src/util/sock.cpp @@ -74,6 +74,11 @@ int Sock::Connect(const sockaddr* addr, socklen_t addr_len) const return connect(m_socket, addr, addr_len); } +int Sock::Bind(const sockaddr* addr, socklen_t addr_len) const +{ + return bind(m_socket, addr, addr_len); +} + std::unique_ptr Sock::Accept(sockaddr* addr, socklen_t* addr_len) const { #ifdef WIN32 diff --git a/src/util/sock.h b/src/util/sock.h index 7510482857..6a7840f4e2 100644 --- a/src/util/sock.h +++ b/src/util/sock.h @@ -97,6 +97,12 @@ public: */ [[nodiscard]] virtual int Connect(const sockaddr* addr, socklen_t addr_len) const; + /** + * bind(2) wrapper. Equivalent to `bind(this->Get(), addr, addr_len)`. Code that uses this + * wrapper can be unit tested if this method is overridden by a mock Sock implementation. + */ + [[nodiscard]] virtual int Bind(const sockaddr* addr, socklen_t addr_len) const; + /** * accept(2) wrapper. Equivalent to `std::make_unique(accept(this->Get(), addr, addr_len))`. * Code that uses this wrapper can be unit tested if this method is overridden by a mock Sock -- cgit v1.2.3 From b2733ab6a85b234a88b83bdc77a0d043e18385b3 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Tue, 13 Apr 2021 16:43:04 +0200 Subject: net: add new method Sock::Listen() that wraps listen() This will help to increase `Sock` usage and make more code mockable. --- src/util/sock.cpp | 5 +++++ src/util/sock.h | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'src/util') diff --git a/src/util/sock.cpp b/src/util/sock.cpp index 89d7a1a7ec..6097c29170 100644 --- a/src/util/sock.cpp +++ b/src/util/sock.cpp @@ -79,6 +79,11 @@ int Sock::Bind(const sockaddr* addr, socklen_t addr_len) const return bind(m_socket, addr, addr_len); } +int Sock::Listen(int backlog) const +{ + return listen(m_socket, backlog); +} + std::unique_ptr Sock::Accept(sockaddr* addr, socklen_t* addr_len) const { #ifdef WIN32 diff --git a/src/util/sock.h b/src/util/sock.h index 6a7840f4e2..6835757328 100644 --- a/src/util/sock.h +++ b/src/util/sock.h @@ -103,6 +103,12 @@ public: */ [[nodiscard]] virtual int Bind(const sockaddr* addr, socklen_t addr_len) const; + /** + * listen(2) wrapper. Equivalent to `listen(this->Get(), backlog)`. Code that uses this + * wrapper can be unit tested if this method is overridden by a mock Sock implementation. + */ + [[nodiscard]] virtual int Listen(int backlog) const; + /** * accept(2) wrapper. Equivalent to `std::make_unique(accept(this->Get(), addr, addr_len))`. * Code that uses this wrapper can be unit tested if this method is overridden by a mock Sock -- cgit v1.2.3