diff options
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sfdnsres.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/ssl/ssl_backend.h | 1 | ||||
| -rw-r--r-- | src/core/internal_network/network.cpp | 13 |
4 files changed, 13 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c44febbc2..bd3808515 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -325,7 +325,7 @@ if (MINGW) | |||
| 325 | endif() | 325 | endif() |
| 326 | 326 | ||
| 327 | if(ENABLE_OPENSSL) | 327 | if(ENABLE_OPENSSL) |
| 328 | find_package(OpenSSL 3.0.0 REQUIRED) | 328 | find_package(OpenSSL 1.1.1 REQUIRED) |
| 329 | endif() | 329 | endif() |
| 330 | 330 | ||
| 331 | # Please consider this as a stub | 331 | # Please consider this as a stub |
diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp index 1196fb86c..fb8798b42 100644 --- a/src/core/hle/service/sockets/sfdnsres.cpp +++ b/src/core/hle/service/sockets/sfdnsres.cpp | |||
| @@ -96,7 +96,7 @@ static void Append(std::vector<u8>& vec, T t) { | |||
| 96 | static void AppendNulTerminated(std::vector<u8>& vec, std::string_view str) { | 96 | static void AppendNulTerminated(std::vector<u8>& vec, std::string_view str) { |
| 97 | size_t off = vec.size(); | 97 | size_t off = vec.size(); |
| 98 | vec.resize(off + str.size() + 1); | 98 | vec.resize(off + str.size() + 1); |
| 99 | std::memcpy(vec.data() + off, str.data(), str.size()); | 99 | std::memmove(vec.data() + off, str.data(), str.size()); |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | // We implement gethostbyname using the host's getaddrinfo rather than the | 102 | // We implement gethostbyname using the host's getaddrinfo rather than the |
diff --git a/src/core/hle/service/ssl/ssl_backend.h b/src/core/hle/service/ssl/ssl_backend.h index 624e07d41..0dd8d9118 100644 --- a/src/core/hle/service/ssl/ssl_backend.h +++ b/src/core/hle/service/ssl/ssl_backend.h | |||
| @@ -31,6 +31,7 @@ constexpr Result ResultWouldBlock{ErrorModule::SSLSrv, 204}; | |||
| 31 | 31 | ||
| 32 | class SSLConnectionBackend { | 32 | class SSLConnectionBackend { |
| 33 | public: | 33 | public: |
| 34 | virtual ~SSLConnectionBackend() {} | ||
| 34 | virtual void SetSocket(std::shared_ptr<Network::SocketBase> socket) = 0; | 35 | virtual void SetSocket(std::shared_ptr<Network::SocketBase> socket) = 0; |
| 35 | virtual Result SetHostName(const std::string& hostname) = 0; | 36 | virtual Result SetHostName(const std::string& hostname) = 0; |
| 36 | virtual Result DoHandshake() = 0; | 37 | virtual Result DoHandshake() = 0; |
diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp index 39381e06e..0164d12eb 100644 --- a/src/core/internal_network/network.cpp +++ b/src/core/internal_network/network.cpp | |||
| @@ -97,6 +97,8 @@ bool EnableNonBlock(SOCKET fd, bool enable) { | |||
| 97 | 97 | ||
| 98 | Errno TranslateNativeError(int e) { | 98 | Errno TranslateNativeError(int e) { |
| 99 | switch (e) { | 99 | switch (e) { |
| 100 | case 0: | ||
| 101 | return Errno::SUCCESS; | ||
| 100 | case WSAEBADF: | 102 | case WSAEBADF: |
| 101 | return Errno::BADF; | 103 | return Errno::BADF; |
| 102 | case WSAEINVAL: | 104 | case WSAEINVAL: |
| @@ -421,9 +423,14 @@ short TranslatePollEvents(PollEvents events) { | |||
| 421 | translate(PollEvents::WrBand, POLLWRBAND); | 423 | translate(PollEvents::WrBand, POLLWRBAND); |
| 422 | 424 | ||
| 423 | #ifdef _WIN32 | 425 | #ifdef _WIN32 |
| 424 | if (True(events & PollEvents::Pri)) { | 426 | short allowed_events = POLLRDBAND | POLLRDNORM | POLLWRNORM; |
| 425 | LOG_WARNING(Service, "Winsock doesn't support POLLPRI"); | 427 | // Unlike poll on other OSes, WSAPoll will complain if any other flags are set on input. |
| 426 | } | 428 | if (result & ~allowed_events) { |
| 429 | LOG_DEBUG(Network, | ||
| 430 | "Removing WSAPoll input events 0x{:x} because Windows doesn't support them", | ||
| 431 | result & ~allowed_events); | ||
| 432 | } | ||
| 433 | result &= allowed_events; | ||
| 427 | #endif | 434 | #endif |
| 428 | 435 | ||
| 429 | UNIMPLEMENTED_IF_MSG((u16)events != 0, "Unhandled guest events=0x{:x}", (u16)events); | 436 | UNIMPLEMENTED_IF_MSG((u16)events != 0, "Unhandled guest events=0x{:x}", (u16)events); |