Fix: [Network] errno and strerror do not handle network errors on Windows
This commit is contained in:

committed by
Charles Pigott

parent
a934dfe0be
commit
65c5a64719
@@ -13,6 +13,7 @@
|
||||
#include "../../debug.h"
|
||||
#include "os_abstraction.h"
|
||||
#include "packet.h"
|
||||
#include "../../string_func.h"
|
||||
|
||||
#include "../../safeguards.h"
|
||||
|
||||
@@ -48,6 +49,22 @@ void NetworkCoreShutdown()
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
/**
|
||||
* Return the string representation of the given error from the OS's network functions.
|
||||
* @param error The error number (from \c NetworkGetLastError()).
|
||||
* @return The error message, potentially an empty string but never \c nullptr.
|
||||
*/
|
||||
const char *NetworkGetErrorString(int error)
|
||||
{
|
||||
static char buffer[512];
|
||||
if (FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buffer, sizeof(buffer), NULL) == 0) {
|
||||
seprintf(buffer, lastof(buffer), "Unknown error %d", error);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
#endif /* defined(_WIN32) */
|
||||
|
||||
/**
|
||||
* Serializes the GRFIdentifier (GRF ID and MD5 checksum) to the packet
|
||||
|
Reference in New Issue
Block a user