#ifndef __CONFIG_WIN32_H
#define __CONFIG_WIN32_H
+#define HAVE_WINDOWS_H
+#define HAVE_WINSOCK2_H
+#define HAVE_WS2TCPIP_H
+
#if defined(__MINGW32__)
#define HAVE_GETOPT_H
#endif
#include "config-win32.h"
#endif
+
+/*
+ * Include header files for windows builds before redefining anything.
+ * Use this preproessor block only to include or exclude windows.h,
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * to any other further and independant block.
+ */
+
+#ifdef WIN32
+# ifdef HAVE_WINDOWS_H
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+# ifdef HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# else
+# ifdef HAVE_WINSOCK_H
+# include <winsock.h>
+# endif
+# endif
+# endif
+#endif
+
+
/* simple work-around for now, for systems without configure support */
#ifndef __DJGPP__
#define ssize_t int
/* now typedef our socket type */
#if defined(WIN32) && !defined(WATT32)
-#include <winsock2.h>
-#include <ws2tcpip.h>
typedef SOCKET ares_socket_t;
#define ARES_SOCKET_BAD INVALID_SOCKET
#else
/* Define if you have the <time.h> header file. */
#define HAVE_TIME_H 1
+/* Define if you have the <windows.h> header file. */
+#define HAVE_WINDOWS_H 1
+
/* Define if you have the <winsock.h> header file. */
#define HAVE_WINSOCK_H 1
/* Define if you have the <time.h> header file. */
#define HAVE_TIME_H 1
+/* Define if you have the <windows.h> header file. */
+#define HAVE_WINDOWS_H 1
+
/* Define if you have the <winsock.h> header file. */
#define HAVE_WINSOCK_H 1
#include "amigaos.h"
#endif
+
+/*
+ * Include header files for windows builds before redefining anything.
+ * Use this preproessor block only to include or exclude windows.h,
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * to any other further and independant block.
+ */
+
+#ifdef WIN32
+# ifdef HAVE_WINDOWS_H
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+# ifdef HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# else
+# ifdef HAVE_WINSOCK_H
+# include <winsock.h>
+# endif
+# endif
+# endif
+#endif
+
+
#ifndef TRUE
#define TRUE 1
#endif
#ifdef WIN32
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN /* Prevent including <winsock*.h> in <windows.h> */
-#endif /* WIN32_LEAN_AND_MEAN */
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h> /* required by telnet.c */
-#endif
-
-#if defined(ENABLE_IPV6) || defined(USE_SSLEAY)
-#if !defined(_MSC_VER) || (_MSC_VER >= 1300)
-#include <ws2tcpip.h>
-#endif
-#endif
-
#if !defined(__GNUC__) || defined(__MINGW32__)
#define sclose(x) closesocket(x)
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
+/* Define if you have the <windows.h> header file. */
+#define HAVE_WINDOWS_H 1
+
+/* Define if you have the <winsock.h> header file. */
+#define HAVE_WINSOCK_H 1
+
+/* Define if you have the <winsock2.h> header file. */
+#define HAVE_WINSOCK2_H 1
+
+/* Define if you have the <ws2tcpip.h> header file. */
+#define HAVE_WS2TCPIP_H 1
+
/* Define if you have utime() */
#if !defined(__BORLANDC__)
#define HAVE_UTIME 1
#include "../lib/setup.h"
#endif
+
+/*
+ * Include header files for windows builds before redefining anything.
+ * Use this preproessor block only to include or exclude windows.h,
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * to any other further and independant block.
+ */
+
+#ifdef WIN32
+# ifdef HAVE_WINDOWS_H
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+# ifdef HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# else
+# ifdef HAVE_WINSOCK_H
+# include <winsock.h>
+# endif
+# endif
+# endif
+#endif
+
+
#include <stdio.h>
#ifdef __TANDEM