diff options
author | Yang Tse <yangsita@gmail.com> | 2011-08-04 21:27:29 +0200 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2011-08-04 21:27:29 +0200 |
commit | a6ed2b8426675115d6d29bfec4d8597cf715b33c (patch) | |
tree | a73aca9deec5d58a60f800fd523f3b53598146ef | |
parent | b56bbabee0b49abef4d163b203f6e2e4f6651066 (diff) |
BSD-style lwIP TCP/IP stack support:
Allow compilation of libcurl and curl using BSD-style lwIP on Win32.
In order to compile libcurl and curl with this support it is necessary
to edit files lib/config-win32.h and src/config-win32.h and uncomment
a line to make definition of preprocessor symbol USE_LWIPSOCK visible.
Afterwards you can compile as usual.
In order to use compiled library with BSD-style lwIP TCP/IP stack in
your program it is mandatory that you include lwIP header file <lwip/opt.h>
before including <curl/curl.h> or <curl/multi.h>
Compilation has been verified with lwIP 1.4.0 and contrib-1.4.0 from:
http://download.savannah.gnu.org/releases/lwip/lwip-1.4.0.zip
http://download.savannah.gnu.org/releases/lwip/contrib-1.4.0.zip
Have fun!
-rw-r--r-- | include/curl/curl.h | 6 | ||||
-rw-r--r-- | lib/config-win32.h | 25 | ||||
-rw-r--r-- | lib/setup.h | 5 | ||||
-rw-r--r-- | src/config-win32.h | 25 | ||||
-rw-r--r-- | src/setup.h | 5 |
5 files changed, 65 insertions, 1 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h index ab64fe25a..b4330a8be 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -56,7 +56,7 @@ #include <time.h> #if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H)) +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || defined(__LWIP_OPT_H__)) /* The check above prevents the winsock2 inclusion if winsock.h already was included, since they can't co-exist without problems */ #include <winsock2.h> @@ -78,6 +78,10 @@ #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 diff --git a/lib/config-win32.h b/lib/config-win32.h index c4fe1b391..e9219de19 100644 --- a/lib/config-win32.h +++ b/lib/config-win32.h @@ -389,6 +389,31 @@ #define HAVE_STRUCT_TIMEVAL 1 /* ---------------------------------------------------------------- */ +/* BSD-style lwIP TCP/IP stack SPECIFIC */ +/* ---------------------------------------------------------------- */ + +/* Define this to use BSD-style lwIP TCP/IP stack */ +/* #define USE_LWIPSOCK 1 */ + +#ifdef USE_LWIPSOCK +# undef USE_WINSOCK +# undef HAVE_WINSOCK_H +# undef HAVE_WINSOCK2_H +# undef HAVE_WS2TCPIP_H +# undef HAVE_ERRNO_H +# undef HAVE_GETHOSTNAME +# undef HAVE_GETNAMEINFO +# undef LWIP_POSIX_SOCKETS_IO_NAMES +# define HAVE_FREEADDRINFO +# define HAVE_GETADDRINFO +# define HAVE_GETHOSTBYNAME +# define HAVE_GETHOSTBYNAME_R +# define HAVE_GETHOSTBYNAME_R_6 +# define LWIP_POSIX_SOCKETS_IO_NAMES 0 +# define SOCKET int +#endif + +/* ---------------------------------------------------------------- */ /* Watt-32 tcp/ip SPECIFIC */ /* ---------------------------------------------------------------- */ diff --git a/lib/setup.h b/lib/setup.h index eb19bafab..d89111f95 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -251,6 +251,11 @@ # endif #endif +#ifdef USE_LWIPSOCK +# include <lwip/sockets.h> +# include <lwip/netdb.h> +#endif + #ifdef HAVE_EXTRA_STRICMP_H # include <extra/stricmp.h> #endif diff --git a/src/config-win32.h b/src/config-win32.h index e5cbcf0df..4b92a2b66 100644 --- a/src/config-win32.h +++ b/src/config-win32.h @@ -263,6 +263,31 @@ #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1 /* ---------------------------------------------------------------- */ +/* BSD-style lwIP TCP/IP stack SPECIFIC */ +/* ---------------------------------------------------------------- */ + +/* Define this to use BSD-style lwIP TCP/IP stack */ +/* #define USE_LWIPSOCK 1 */ + +#ifdef USE_LWIPSOCK +# undef USE_WINSOCK +# undef HAVE_WINSOCK_H +# undef HAVE_WINSOCK2_H +# undef HAVE_WS2TCPIP_H +# undef HAVE_ERRNO_H +# undef HAVE_GETHOSTNAME +# undef HAVE_GETNAMEINFO +# undef LWIP_POSIX_SOCKETS_IO_NAMES +# define HAVE_FREEADDRINFO +# define HAVE_GETADDRINFO +# define HAVE_GETHOSTBYNAME +# define HAVE_GETHOSTBYNAME_R +# define HAVE_GETHOSTBYNAME_R_6 +# define LWIP_POSIX_SOCKETS_IO_NAMES 0 +# define SOCKET int +#endif + +/* ---------------------------------------------------------------- */ /* Watt-32 tcp/ip SPECIFIC */ /* ---------------------------------------------------------------- */ diff --git a/src/setup.h b/src/setup.h index b510fd9b5..d2562a244 100644 --- a/src/setup.h +++ b/src/setup.h @@ -135,6 +135,11 @@ # endif #endif +#ifdef USE_LWIPSOCK +# include <lwip/sockets.h> +# include <lwip/netdb.h> +#endif + #ifdef TPF # include <sys/socket.h> /* change which select is used for the curl command line tool */ |