diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/Log.cpp | 6 | ||||
-rw-r--r-- | source/OSSupport/Socket.cpp | 37 | ||||
-rw-r--r-- | source/main.cpp | 8 |
3 files changed, 33 insertions, 18 deletions
diff --git a/source/Log.cpp b/source/Log.cpp index ed1a9beb8..5f78bba1b 100644 --- a/source/Log.cpp +++ b/source/Log.cpp @@ -70,7 +70,7 @@ void cLog::CloseLog() void cLog::OpenLog( const char* a_FileName ) { if(m_File) fclose (m_File); - #ifdef _WIN32 + #ifdef _MSC_VER fopen_s( &m_File, a_FileName, "a+" ); #else m_File = fopen(a_FileName, "a+" ); @@ -83,7 +83,7 @@ void cLog::OpenLog( const char* a_FileName ) void cLog::ClearLog() { - #ifdef _WIN32 + #ifdef _MSC_VER if( fopen_s( &m_File, "log.txt", "w" ) == 0) fclose (m_File); #else @@ -107,7 +107,7 @@ void cLog::Log(const char * a_Format, va_list argList) time ( &rawtime ); struct tm* timeinfo; -#ifdef _WIN32 +#ifdef _MSC_VER struct tm timeinforeal; timeinfo = &timeinforeal; localtime_s(timeinfo, &rawtime ); diff --git a/source/OSSupport/Socket.cpp b/source/OSSupport/Socket.cpp index b4ac62993..48bfc6cfd 100644 --- a/source/OSSupport/Socket.cpp +++ b/source/OSSupport/Socket.cpp @@ -294,17 +294,32 @@ cSocket cSocket::AcceptIPv6(void) if (SClient.IsValid()) { #if defined(_WIN32) - // Windows XP doesn't have inet_ntop, so we need to improvise: - Printf(SClient.m_IPString, "%x:%x:%x:%x:%x:%x:%x:%x", - from.sin6_addr.u.Word[0], - from.sin6_addr.u.Word[1], - from.sin6_addr.u.Word[2], - from.sin6_addr.u.Word[3], - from.sin6_addr.u.Word[4], - from.sin6_addr.u.Word[5], - from.sin6_addr.u.Word[6], - from.sin6_addr.u.Word[7] - ); + // Windows XP doesn't have inet_ntop, so we need to improvise. And MSVC has different headers than GCC + #ifdef _MSC_VER + // MSVC version + Printf(SClient.m_IPString, "%x:%x:%x:%x:%x:%x:%x:%x", + from.sin6_addr.u.Word[0], + from.sin6_addr.u.Word[1], + from.sin6_addr.u.Word[2], + from.sin6_addr.u.Word[3], + from.sin6_addr.u.Word[4], + from.sin6_addr.u.Word[5], + from.sin6_addr.u.Word[6], + from.sin6_addr.u.Word[7] + ); + #else // _MSC_VER + // MinGW + Printf(SClient.m_IPString, "%x:%x:%x:%x:%x:%x:%x:%x", + from.sin6_addr.s6_addr16[0], + from.sin6_addr.s6_addr16[1], + from.sin6_addr.s6_addr16[2], + from.sin6_addr.s6_addr16[3], + from.sin6_addr.s6_addr16[4], + from.sin6_addr.s6_addr16[5], + from.sin6_addr.s6_addr16[6], + from.sin6_addr.s6_addr16[7] + ); + #endif // else _MSC_VER #else char buffer[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, &(from.sin6_addr), buffer, sizeof(buffer)); diff --git a/source/main.cpp b/source/main.cpp index 71110c265..baf41a845 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -11,9 +11,9 @@ #include "squirrelbindings/SquirrelBindings.h" #endif -#ifdef _WIN32 +#ifdef _MSC_VER #include <dbghelp.h> -#endif // _WIN32 +#endif // _MSC_VER @@ -51,7 +51,7 @@ void ShowCrashReport(int) -#if defined(_WIN32) && !defined(_WIN64) +#if defined(_WIN32) && !defined(_WIN64) && defined(_MSC_VER) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Windows 32-bit stuff: when the server crashes, create a "dump file" containing the callstack of each thread and some variables; let the user send us that crash file for analysis @@ -128,7 +128,7 @@ int main( int argc, char **argv ) #endif // Magic code to produce dump-files on Windows if the server crashes: - #if defined(_WIN32) && !defined(_WIN64) + #if defined(_WIN32) && !defined(_WIN64) && defined(_MSC_VER) HINSTANCE hDbgHelp = LoadLibrary("DBGHELP.DLL"); g_WriteMiniDump = (pMiniDumpWriteDump)GetProcAddress(hDbgHelp, "MiniDumpWriteDump"); if (g_WriteMiniDump != NULL) |