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
commitc8da75b7ed467f42775eb0d507f2704516775ab2 (patch)
tree0fda310e0c6c7da5799e504a9444907c6f9ad1a1 /src/core/internal_network/sockets.h
parent8d4458ef24e473e57b9931d7a9d1442b51fb0b1a (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 a70429b19..2e328c645 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;