From: Yang Tse <yangsita@gmail.com>
Date: Fri, 5 Aug 2011 13:42:05 +0000 (+0200)
Subject: BSD-style lwIP TCP/IP stack support - followup
X-Git-Tag: curl-7_22_0~165
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f6272dd9b8ae8d188068aeb0df2af496a964e407;p=curl

BSD-style lwIP TCP/IP stack support - followup
---

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 */