aboutsummaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorVasil Dimov <vd@FreeBSD.org>2021-04-23 12:15:15 +0200
committerVasil Dimov <vd@FreeBSD.org>2021-12-01 15:22:57 +0100
commit9e3cbfca7c9efa620c0cce73503772805cc1fa82 (patch)
treed462de1d2d10e666dfce8ab3237f1e207aa31964 /src/net.h
parentf8bd13f85ae5404adef23a52719d804a5c36b1e8 (diff)
downloadbitcoin-9e3cbfca7c9efa620c0cce73503772805cc1fa82.tar.xz
net: use Sock in CConnman::ListenSocket
Change `CConnman::ListenSocket` to use a pointer to `Sock` instead of a bare `SOCKET` and use `Sock::Accept()` instead of bare `accept()`. This will help mocking / testing / fuzzing more code.
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/net.h b/src/net.h
index dd5cc66a04..bb6e7a79ad 100644
--- a/src/net.h
+++ b/src/net.h
@@ -26,6 +26,7 @@
#include <threadinterrupt.h>
#include <uint256.h>
#include <util/check.h>
+#include <util/sock.h>
#include <atomic>
#include <condition_variable>
@@ -947,9 +948,13 @@ public:
private:
struct ListenSocket {
public:
- SOCKET socket;
+ std::shared_ptr<Sock> sock;
inline void AddSocketPermissionFlags(NetPermissionFlags& flags) const { NetPermissions::AddFlag(flags, m_permissions); }
- ListenSocket(SOCKET socket_, NetPermissionFlags permissions_) : socket(socket_), m_permissions(permissions_) {}
+ ListenSocket(std::shared_ptr<Sock> sock_, NetPermissionFlags permissions_)
+ : sock{sock_}, m_permissions{permissions_}
+ {
+ }
+
private:
NetPermissionFlags m_permissions;
};