diff --git a/src/safeguards.h b/src/safeguards.h --- a/src/safeguards.h +++ b/src/safeguards.h @@ -69,4 +69,17 @@ #undef abs #endif +#if defined(NETWORK_CORE_OS_ABSTRACTION_H) && defined(_WIN32) +/* Use NetworkGetLastError() instead of errno, or do not (indirectly) include network/core/os_abstraction.h. + * Winsock does not set errno, but one should rather call WSAGetLastError. NetworkGetLastError abstracts that away. */ +#ifdef errno +#undef errno +#endif +#define errno SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use NetworkGetLastErrorString() instead of strerror, or do not (indirectly) include network/core/os_abstraction.h. + * Winsock errors are not handled by strerror, but one should rather call FormatMessage. NetworkGetLastErrorString abstracts that away. */ +#define strerror SAFEGUARD_DO_NOT_USE_THIS_METHOD +#endif /* defined(NETWORK_CORE_OS_ABSTRACTION_H) && defined(_WIN32) */ + #endif /* SAFEGUARDS_H */