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!
This commit is contained in:
parent
b56bbabee0
commit
a6ed2b8426
@ -56,7 +56,7 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
|
#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
|
/* The check above prevents the winsock2 inclusion if winsock.h already was
|
||||||
included, since they can't co-exist without problems */
|
included, since they can't co-exist without problems */
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
@ -78,6 +78,10 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LWIP_OPT_H__)
|
||||||
|
#include <lwip/sockets.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__)
|
#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__)
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -388,6 +388,31 @@
|
|||||||
/* Define this if you have struct timeval */
|
/* Define this if you have struct timeval */
|
||||||
#define HAVE_STRUCT_TIMEVAL 1
|
#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 */
|
/* Watt-32 tcp/ip SPECIFIC */
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
|
@ -251,6 +251,11 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_LWIPSOCK
|
||||||
|
# include <lwip/sockets.h>
|
||||||
|
# include <lwip/netdb.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_EXTRA_STRICMP_H
|
#ifdef HAVE_EXTRA_STRICMP_H
|
||||||
# include <extra/stricmp.h>
|
# include <extra/stricmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -262,6 +262,31 @@
|
|||||||
/* Define this if struct sockaddr_in6 has the sin6_scope_id member */
|
/* Define this if struct sockaddr_in6 has the sin6_scope_id member */
|
||||||
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
|
#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 */
|
/* Watt-32 tcp/ip SPECIFIC */
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
|
@ -135,6 +135,11 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_LWIPSOCK
|
||||||
|
# include <lwip/sockets.h>
|
||||||
|
# include <lwip/netdb.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TPF
|
#ifdef TPF
|
||||||
# include <sys/socket.h>
|
# include <sys/socket.h>
|
||||||
/* change which select is used for the curl command line tool */
|
/* change which select is used for the curl command line tool */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user