summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Network.cpp
diff options
context:
space:
mode:
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