From 8098ed899a3648897c0de925c974e21883a76b8d Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 30 Mar 2011 00:55:45 -0400 Subject: Fixed windows build more, including ldap --- src/logger.cpp | 2 -- src/win32/anope_windows.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++ src/win32/windows.cpp | 16 +++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 src/win32/anope_windows.h (limited to 'src') diff --git a/src/logger.cpp b/src/logger.cpp index 1265dc3e2..a74a219d9 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -52,7 +52,6 @@ static Anope::string GetTimeStamp() if (time(&t) < 0) throw CoreException("time() failed"); tm tm = *localtime(&t); -#if HAVE_GETTIMEOFDAY if (debug) { char *s; @@ -64,7 +63,6 @@ static Anope::string GetTimeStamp() strftime(s, sizeof(tbuf) - (s - tbuf) - 1, " %Y]", &tm); } else -#endif strftime(tbuf, sizeof(tbuf) - 1, "[%b %d %H:%M:%S %Y]", &tm); return tbuf; diff --git a/src/win32/anope_windows.h b/src/win32/anope_windows.h new file mode 100644 index 000000000..3abe8bd13 --- /dev/null +++ b/src/win32/anope_windows.h @@ -0,0 +1,51 @@ + /* POSIX emulation layer for Windows. + * + * Copyright (C) 2008-2011 Robin Burchell + * Copyright (C) 2008-2011 Anope Team + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + */ + + #ifndef WINDOWS_H + #define WINDOWS_H + #ifdef _WIN32 + +#include +#include +#include +#include +#include +#include +#ifdef MODULE_COMPILE +# define CoreExport __declspec(dllimport) +# define DllExport __declspec(dllexport) +#else +# define CoreExport __declspec(dllexport) +# define DllExport __declspec(dllimport) +#endif +/* We have our own inet_pton and inet_ntop (Windows XP doesn't have its own) */ +#define inet_pton inet_pton_ +#define inet_ntop inet_ntop_ +#define setenv(x, y, z) SetEnvironmentVariable(x, y) +#define unsetenv(x) SetEnvironmentVariable(x, NULL) +#define MARK_DEPRECATED +#if GETTEXT_FOUND +/* Undefine some functions libintl defines */ +# undef snprintf +# undef vsnprintf +# undef printf +#endif +#define snprintf _snprintf +/* VS2008 hates having this define before its own */ +#define vsnprintf _vsnprintf + +extern CoreExport USHORT WindowsGetLanguage(const char *lang); +extern CoreExport int inet_pton(int af, const char *src, void *dst); +extern CoreExport const char *inet_ntop(int af, const void *src, char *dst, size_t size); +extern CoreExport int gettimeofday(timeval *tv, char *); + + #endif // _WIN32 + #endif // WINDOWS_H \ No newline at end of file diff --git a/src/win32/windows.cpp b/src/win32/windows.cpp index a443472f9..b57171dec 100644 --- a/src/win32/windows.cpp +++ b/src/win32/windows.cpp @@ -123,4 +123,20 @@ const char *inet_ntop(int af, const void *src, char *dst, size_t size) return NULL; } +/** Like gettimeofday(), but it works on Windows. + * @param tv A timeval struct + * @param tz Should be NULL, it is not used + * @return 0 on success + */ +int gettimeofday(timeval *tv, char *) +{ + SYSTEMTIME st; + GetSystemTime(&st); + + tv->tv_sec = Anope::CurTime; + tv->tv_usec = st.wMilliseconds; + + return 0; +} + #endif -- cgit