From 0fbee16f65ffaa3d47de1bda2733cd899cdfadda Mon Sep 17 00:00:00 2001 From: "Joseph C. Lehner" Date: Fri, 5 Feb 2016 20:20:23 +0200 Subject: [PATCH] Better error messages on Windows --- ethsock.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ethsock.c b/ethsock.c index c11f13d..3d5e60f 100644 --- a/ethsock.c +++ b/ethsock.c @@ -87,9 +87,20 @@ static bool get_hwaddr(uint8_t *hwaddr, const char *intf) } #else -static void win_perror2(const char *msg, int err) +void win_perror2(const char *msg, DWORD err) { - fprintf(stderr, "%s: error %d\n", msg, err); + char *buf = NULL; + FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)&buf, 0, NULL); + + if (buf) { + fprintf(stderr, "%s: %s (%d)\n", msg, buf, (int)err); + LocalFree(buf); + } else { + fprintf(stderr, "%s: error %d\n", msg, (int)err); + } } static bool get_hwaddr(uint8_t *hwaddr, const char *intf) -- 2.25.1