aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/curl/curl.h6
-rw-r--r--lib/config-win32.h2
-rw-r--r--lib/connect.c2
-rw-r--r--lib/setup_once.h16
4 files changed, 19 insertions, 7 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h
index b4330a8be..c31918728 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -78,10 +78,6 @@
#include <sys/socket.h>
#endif
-#if defined(__LWIP_OPT_H__)
-#include <lwip/sockets.h>
-#endif
-
#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__)
#include <sys/time.h>
#endif
@@ -124,7 +120,7 @@ typedef void CURL;
#ifndef curl_socket_typedef
/* socket typedef */
-#ifdef WIN32
+#if defined(WIN32) && !defined(__LWIP_OPT_H__)
typedef SOCKET curl_socket_t;
#define CURL_SOCKET_BAD INVALID_SOCKET
#else
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 8c4719745..1179b1588 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -407,7 +407,7 @@
/* BSD-style lwIP TCP/IP stack SPECIFIC */
/* ---------------------------------------------------------------- */
-/* Define this to use BSD-style lwIP TCP/IP stack */
+/* Define this to use BSD-style lwIP TCP/IP stack */
/* #define USE_LWIPSOCK 1 */
#ifdef USE_LWIPSOCK
diff --git a/lib/connect.c b/lib/connect.c
index 1f802bda8..9301f0108 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -792,7 +792,7 @@ static void nosigpipe(struct connectdata *conn,
#define nosigpipe(x,y)
#endif
-#ifdef WIN32
+#ifdef USE_WINSOCK
/* When you run a program that uses the Windows Sockets API, you may
experience slow performance when you copy data to a TCP server.
diff --git a/lib/setup_once.h b/lib/setup_once.h
index 751102bed..4f7d0d791 100644
--- a/lib/setup_once.h
+++ b/lib/setup_once.h
@@ -490,5 +490,21 @@ typedef int sig_atomic_t;
#define ZERO_NULL 0
+
+/*
+ * Ensure that Winsock and lwIP TCP/IP stacks are not mixed.
+ */
+
+#if defined(__LWIP_OPT_H__)
+# if defined(SOCKET) || \
+ defined(USE_WINSOCK) || \
+ defined(HAVE_ERRNO_H) || \
+ defined(HAVE_WINSOCK_H) || \
+ defined(HAVE_WINSOCK2_H) || \
+ defined(HAVE_WS2TCPIP_H)
+# error "Winsock and lwIP TCP/IP stack definitions shall not coexist!"
+# endif
+#endif
+
#endif /* __SETUP_ONCE_H */