Add helper to log Windows system errors
It will help to log errors returned by GetLastError() or WSAGetLastError(): - <https://docs.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror> - <https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsagetlasterror> - <https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes#system-error-codes> Always log the errors in English to be able to read them in bug reports.
This commit is contained in:
@@ -117,14 +117,7 @@ set_cloexec_flag(sc_raw_socket raw_sock) {
|
||||
static void
|
||||
net_perror(const char *s) {
|
||||
#ifdef _WIN32
|
||||
int error = WSAGetLastError();
|
||||
char *wsa_message;
|
||||
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(char *) &wsa_message, 0, NULL);
|
||||
// no explicit '\n', wsa_message already contains a trailing '\n'
|
||||
fprintf(stderr, "%s: [%d] %s", s, error, wsa_message);
|
||||
LocalFree(wsa_message);
|
||||
sc_log_windows_error(s, WSAGetLastError());
|
||||
#else
|
||||
perror(s);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user