summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/Log.cpp6
-rw-r--r--source/OSSupport/Socket.cpp37
-rw-r--r--source/main.cpp8
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)