aboutsummaryrefslogtreecommitdiff
path: root/src/core/internal_network/sockets.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2022-09-22 08:10:43 -0400
committerLioncash <mathew1800@gmail.com>2022-09-22 08:20:54 -0400
commita260c09deb3a54a5424ef69281de0dbb5fa41826 (patch)
tree0fda310e0c6c7da5799e504a9444907c6f9ad1a1 /src/core/internal_network/sockets.h
parentfa7daaf17101a126b979fa6ba9254796ea9f7469 (diff)
sockets: Make fd member variable protected
Other things shouldn't be able to directly mess around with the descriptor
Diffstat (limited to 'src/core/internal_network/sockets.h')
-rw-r--r--src/core/internal_network/sockets.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/internal_network/sockets.h b/src/core/internal_network/sockets.h
index a70429b19c..2e328c645a 100644
--- a/src/core/internal_network/sockets.h
+++ b/src/core/internal_network/sockets.h
@@ -32,6 +32,10 @@ public:
std::unique_ptr<SocketBase> socket;
SockAddrIn sockaddr_in;
};
+
+ SocketBase() = default;
+ explicit SocketBase(SOCKET fd_) : fd{fd_} {}
+
virtual ~SocketBase() = default;
virtual SocketBase& operator=(const SocketBase&) = delete;
@@ -89,12 +93,19 @@ public:
virtual void HandleProxyPacket(const ProxyPacket& packet) = 0;
+ [[nodiscard]] SOCKET GetFD() const {
+ return fd;
+ }
+
+protected:
SOCKET fd = INVALID_SOCKET;
};
class Socket : public SocketBase {
public:
Socket() = default;
+ explicit Socket(SOCKET fd_) : SocketBase{fd_} {}
+
~Socket() override;
Socket(const Socket&) = delete;