From f2343ad81b9f8f38452f45e70963bca93a1c03e4 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 6 Feb 2012 11:53:01 +0000 Subject: cSocket: re-implemented the GetLastErrorString() function; win: error texts are now queried from the system rather than enumerated by the program git-svn-id: http://mc-server.googlecode.com/svn/trunk@235 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cSocket.cpp | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) (limited to 'source/cSocket.cpp') diff --git a/source/cSocket.cpp b/source/cSocket.cpp index f8b0bed20..bb6f68249 100644 --- a/source/cSocket.cpp +++ b/source/cSocket.cpp @@ -94,30 +94,14 @@ void cSocket::CloseSocket() AString cSocket::GetErrorString( int a_ErrNo ) { -#define CASE_AND_RETURN(x) case x: return #x + #ifdef _WIN32 + + char Buffer[1024]; + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, a_ErrNo, 0, Buffer, ARRAYCOUNT(Buffer), NULL); + return AString(Buffer); + + #else // _WIN32 -#ifdef _WIN32 - switch (WSAGetLastError()) - { - CASE_AND_RETURN(WSANOTINITIALISED); - CASE_AND_RETURN(WSAENETDOWN); - CASE_AND_RETURN(WSAEFAULT); - CASE_AND_RETURN(WSAENOTCONN); - CASE_AND_RETURN(WSAEINTR); - CASE_AND_RETURN(WSAEINPROGRESS); - CASE_AND_RETURN(WSAENETRESET); - CASE_AND_RETURN(WSAENOTSOCK); - CASE_AND_RETURN(WSAEOPNOTSUPP); - CASE_AND_RETURN(WSAESHUTDOWN); - CASE_AND_RETURN(WSAEWOULDBLOCK); - CASE_AND_RETURN(WSAEMSGSIZE); - CASE_AND_RETURN(WSAEINVAL); - CASE_AND_RETURN(WSAECONNABORTED); - CASE_AND_RETURN(WSAETIMEDOUT); - CASE_AND_RETURN(WSAECONNRESET); - } - return "No Error"; -#else char buffer[ 256 ]; if( strerror_r( errno, buffer, 256 ) == 0 ) { @@ -127,7 +111,8 @@ AString cSocket::GetErrorString( int a_ErrNo ) { return "Error on getting error string!"; } -#endif + + #endif // else _WIN32 } -- cgit v1.2.3