From 0dd92d7d9944b158511e27795ff6952c17fd3497 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Tue, 8 Jan 2019 20:40:50 -0800 Subject: Put pcap_win32_err_to_str() into fmtutils.c, and use it for all Win32 errors. We don't need N different places all doing their own calls to FormatMessage(); centralize it in pcap_win32_err_to_str(), now in fmtutils.c for use in rpcapd as well as libpcap. Merge in some fixes from the code in sock_fmterror(). --- sockutils.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'sockutils.c') diff --git a/sockutils.c b/sockutils.c index 09d1a961..57bcdf66 100644 --- a/sockutils.c +++ b/sockutils.c @@ -133,25 +133,11 @@ void sock_fmterror(const char *caller, int errcode, char *errbuf, int errbuflen) if (errbuf == NULL) return; - retval = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | - FORMAT_MESSAGE_MAX_WIDTH_MASK, - NULL, errcode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - message, sizeof(message) / sizeof(TCHAR), NULL); - - if (retval == 0) - { - if ((caller) && (*caller)) - pcap_snprintf(errbuf, errbuflen, "%sUnable to get the exact error message", caller); - else - pcap_snprintf(errbuf, errbuflen, "Unable to get the exact error message"); - } + pcap_win32_err_to_str(errcode, message); + if ((caller) && (*caller)) + pcap_snprintf(errbuf, errbuflen, "%s%s", caller, message, errcode); else - { - if ((caller) && (*caller)) - pcap_snprintf(errbuf, errbuflen, "%s%s (code %d)", caller, message, errcode); - else - pcap_snprintf(errbuf, errbuflen, "%s (code %d)", message, errcode); - } + pcap_snprintf(errbuf, errbuflen, "%s", message, errcode); #else char *message; @@ -161,9 +147,9 @@ void sock_fmterror(const char *caller, int errcode, char *errbuf, int errbuflen) message = strerror(errcode); if ((caller) && (*caller)) - pcap_snprintf(errbuf, errbuflen, "%s%s (code %d)", caller, message, errcode); + pcap_snprintf(errbuf, errbuflen, "%s%s (%d)", caller, message, errcode); else - pcap_snprintf(errbuf, errbuflen, "%s (code %d)", message, errcode); + pcap_snprintf(errbuf, errbuflen, "%s (%d)", message, errcode); #endif } -- cgit v1.2.3