diff --git a/src/include/lwip/inet.h b/src/include/lwip/inet.h index 2982a0f4..50e8e303 100644 --- a/src/include/lwip/inet.h +++ b/src/include/lwip/inet.h @@ -41,6 +41,11 @@ #define LWIP_HDR_INET_H #include "lwip/opt.h" + +#if LWIP_SOCKET_EXTERNAL_HEADERS +#include LWIP_SOCKET_EXTERNAL_HEADER_INET_H +#else /* LWIP_SOCKET_EXTERNAL_HEADERS */ + #include "lwip/def.h" #include "lwip/ip_addr.h" #include "lwip/ip6_addr.h" @@ -166,4 +171,6 @@ extern const struct in6_addr in6addr_any; } #endif +#endif /* LWIP_SOCKET_EXTERNAL_HEADERS */ + #endif /* LWIP_HDR_INET_H */ diff --git a/src/include/lwip/opt.h b/src/include/lwip/opt.h index d760a100..d39ed50f 100644 --- a/src/include/lwip/opt.h +++ b/src/include/lwip/opt.h @@ -2009,6 +2009,17 @@ #define LWIP_SOCKET_OFFSET 0 #endif +/** + * LWIP_SOCKET_EXTERNAL_HEADERS==1: Use external headers instead of sockets.h + * and inet.h. In this case, user must provide its own headers by setting the + * values for LWIP_SOCKET_EXTERNAL_HEADER_SOCKETS_H and + * LWIP_SOCKET_EXTERNAL_HEADER_INET_H to appropriate include file names and the + * whole content of the default sockets.h and inet.h is skipped. + */ +#if !defined LWIP_SOCKET_EXTERNAL_HEADERS || defined __DOXYGEN__ +#define LWIP_SOCKET_EXTERNAL_HEADERS 0 +#endif + /** * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set diff --git a/src/include/lwip/sockets.h b/src/include/lwip/sockets.h index d70d36c4..819357e7 100644 --- a/src/include/lwip/sockets.h +++ b/src/include/lwip/sockets.h @@ -41,6 +41,10 @@ #include "lwip/opt.h" +#if LWIP_SOCKET_EXTERNAL_HEADERS +#include LWIP_SOCKET_EXTERNAL_HEADER_SOCKETS_H +#else /* LWIP_SOCKET_EXTERNAL_HEADERS */ + #if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ #include "lwip/ip_addr.h" @@ -685,4 +689,6 @@ int lwip_inet_pton(int af, const char *src, void *dst); #endif /* LWIP_SOCKET */ +#endif /* LWIP_SOCKET_EXTERNAL_HEADERS */ + #endif /* LWIP_HDR_SOCKETS_H */