diff options
| author | 2022-09-23 09:08:07 -0400 | |
|---|---|---|
| committer | 2022-09-23 09:08:07 -0400 | |
| commit | 70abb13a434a5089bce284433c6df19b46ff27d2 (patch) | |
| tree | 9c5696dfb3798bd9b772c4abbf2a55b77501cf2d | |
| parent | Merge pull request #8939 from lioncash/render (diff) | |
| parent | sockets: Make fd member variable protected (diff) | |
| download | yuzu-70abb13a434a5089bce284433c6df19b46ff27d2.tar.gz yuzu-70abb13a434a5089bce284433c6df19b46ff27d2.tar.xz yuzu-70abb13a434a5089bce284433c6df19b46ff27d2.zip | |
Merge pull request #8943 from lioncash/netiface
sockets: Make fd member variable protected
Diffstat (limited to '')
| -rw-r--r-- | src/core/internal_network/network.cpp | 12 | ||||
| -rw-r--r-- | src/core/internal_network/sockets.h | 11 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp index cdf38a2a4..447fbffaa 100644 --- a/src/core/internal_network/network.cpp +++ b/src/core/internal_network/network.cpp | |||
| @@ -364,7 +364,7 @@ std::pair<s32, Errno> Poll(std::vector<PollFD>& pollfds, s32 timeout) { | |||
| 364 | std::vector<WSAPOLLFD> host_pollfds(pollfds.size()); | 364 | std::vector<WSAPOLLFD> host_pollfds(pollfds.size()); |
| 365 | std::transform(pollfds.begin(), pollfds.end(), host_pollfds.begin(), [](PollFD fd) { | 365 | std::transform(pollfds.begin(), pollfds.end(), host_pollfds.begin(), [](PollFD fd) { |
| 366 | WSAPOLLFD result; | 366 | WSAPOLLFD result; |
| 367 | result.fd = fd.socket->fd; | 367 | result.fd = fd.socket->GetFD(); |
| 368 | result.events = TranslatePollEvents(fd.events); | 368 | result.events = TranslatePollEvents(fd.events); |
| 369 | result.revents = 0; | 369 | result.revents = 0; |
| 370 | return result; | 370 | return result; |
| @@ -430,12 +430,12 @@ std::pair<SocketBase::AcceptResult, Errno> Socket::Accept() { | |||
| 430 | return {AcceptResult{}, GetAndLogLastError()}; | 430 | return {AcceptResult{}, GetAndLogLastError()}; |
| 431 | } | 431 | } |
| 432 | 432 | ||
| 433 | AcceptResult result; | ||
| 434 | result.socket = std::make_unique<Socket>(); | ||
| 435 | result.socket->fd = new_socket; | ||
| 436 | |||
| 437 | ASSERT(addrlen == sizeof(sockaddr_in)); | 433 | ASSERT(addrlen == sizeof(sockaddr_in)); |
| 438 | result.sockaddr_in = TranslateToSockAddrIn(addr); | 434 | |
| 435 | AcceptResult result{ | ||
| 436 | .socket = std::make_unique<Socket>(new_socket), | ||
| 437 | .sockaddr_in = TranslateToSockAddrIn(addr), | ||
| 438 | }; | ||
| 439 | 439 | ||
| 440 | return {std::move(result), Errno::SUCCESS}; | 440 | return {std::move(result), Errno::SUCCESS}; |
| 441 | } | 441 | } |
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: | |||
| 32 | std::unique_ptr<SocketBase> socket; | 32 | std::unique_ptr<SocketBase> socket; |
| 33 | SockAddrIn sockaddr_in; | 33 | SockAddrIn sockaddr_in; |
| 34 | }; | 34 | }; |
| 35 | |||
| 36 | SocketBase() = default; | ||
| 37 | explicit SocketBase(SOCKET fd_) : fd{fd_} {} | ||
| 38 | |||
| 35 | virtual ~SocketBase() = default; | 39 | virtual ~SocketBase() = default; |
| 36 | 40 | ||
| 37 | virtual SocketBase& operator=(const SocketBase&) = delete; | 41 | virtual SocketBase& operator=(const SocketBase&) = delete; |
| @@ -89,12 +93,19 @@ public: | |||
| 89 | 93 | ||
| 90 | virtual void HandleProxyPacket(const ProxyPacket& packet) = 0; | 94 | virtual void HandleProxyPacket(const ProxyPacket& packet) = 0; |
| 91 | 95 | ||
| 96 | [[nodiscard]] SOCKET GetFD() const { | ||
| 97 | return fd; | ||
| 98 | } | ||
| 99 | |||
| 100 | protected: | ||
| 92 | SOCKET fd = INVALID_SOCKET; | 101 | SOCKET fd = INVALID_SOCKET; |
| 93 | }; | 102 | }; |
| 94 | 103 | ||
| 95 | class Socket : public SocketBase { | 104 | class Socket : public SocketBase { |
| 96 | public: | 105 | public: |
| 97 | Socket() = default; | 106 | Socket() = default; |
| 107 | explicit Socket(SOCKET fd_) : SocketBase{fd_} {} | ||
| 108 | |||
| 98 | ~Socket() override; | 109 | ~Socket() override; |
| 99 | 110 | ||
| 100 | Socket(const Socket&) = delete; | 111 | Socket(const Socket&) = delete; |