summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Network.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2022-06-27 21:39:36 -0400
committerGitHub <noreply@github.com>2022-06-27 21:39:36 -0400
commite50e45f400856191eafb5f0c6044a8efbf152321 (patch)
treedd7f504d2f6787e832d0afdaf5e5b1d1a27b488f /Source/Core/Common/Network.cpp
parente8965c63e41871538a97630bfdd628119fec6aca (diff)
parentd7135daff5d3c6aab91b4600875d234dff367f82 (diff)
Merge pull request #10700 from sepalani/ssl-handshake
Socket: Fix some non-blocking connect edge cases
Diffstat (limited to 'Source/Core/Common/Network.cpp')
-rw-r--r--Source/Core/Common/Network.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp
index 2c548347a3..faa2a33c05 100644
--- a/Source/Core/Common/Network.cpp
+++ b/Source/Core/Common/Network.cpp
@@ -186,4 +186,22 @@ u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value)
checksum = (checksum >> 16) + (checksum & 0xFFFF);
return ~static_cast<u16>(checksum);
}
+
+NetworkErrorState SaveNetworkErrorState()
+{
+ return {
+ errno,
+#ifdef _WIN32
+ WSAGetLastError(),
+#endif
+ };
+}
+
+void RestoreNetworkErrorState(const NetworkErrorState& state)
+{
+ errno = state.error;
+#ifdef _WIN32
+ WSASetLastError(state.wsa_error);
+#endif
+}
} // namespace Common