lwIP  2.1.0
Lightweight IP stack


#define LWIP_SOCKET   1
#define LWIP_SO_SNDTIMEO   0
#define LWIP_SO_RCVTIMEO   0
#define LWIP_SO_RCVBUF   0
#define LWIP_SO_LINGER   0
#define SO_REUSE   0
#define SO_REUSE_RXTOALL   0
#define LWIP_SOCKET_POLL   1

Detailed Description

Macro Definition Documentation



LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names through defines. LWIP_COMPAT_SOCKETS==2: Same as ==1 but correctly named functions are created. While this helps code completion, it might conflict with existing libraries. (only used if you use sockets.c)



LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of pending data in the network buffer. This is the way windows does it. It's the default for lwIP since it is smaller. LWIP_FIONREAD_LINUXMODE==1: ioctl/FIONREAD returns the size of the next pending datagram in bytes. This is the way linux does it. This code is only here for compatibility.



LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. Disable this option if you use a POSIX operating system that uses the same names (read, write & close). (only used if you use sockets.c)


#define LWIP_SO_LINGER   0

LWIP_SO_LINGER==1: Enable SO_LINGER processing.


#define LWIP_SO_RCVBUF   0

LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.


#define LWIP_SO_RCVTIMEO   0

LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.



LWIP_SO_SNDRCVTIMEO_NONSTANDARD==1: SO_RCVTIMEO/SO_SNDTIMEO take an int (milliseconds, much like winsock does) instead of a struct timeval (default).


#define LWIP_SO_SNDTIMEO   0

LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.


#define LWIP_SOCKET   1

LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)



LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. This can be useful when there are multiple APIs which create file descriptors. When they all start with a different offset and you won't make them overlap you can re implement read/write/close/ioctl/fnctl to send the requested action to the right library (sharing select will need more work though).


#define LWIP_SOCKET_POLL   1

LWIP_SOCKET_POLL==1 (default): enable poll() for sockets (including struct pollfd, nfds_t, and constants)



LWIP_SOCKET_SELECT==1 (default): enable select() for sockets (uses a netconn callback to keep track of events). This saves RAM (counters per socket) and code (netconn event callback), which should improve performance a bit).



By default, TCP socket/netconn close waits 20 seconds max to send the FIN



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 in seconds. (does not require sockets.c, and will affect tcp.c)



If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.


#define SO_REUSE   0

SO_REUSE==1: Enable SO_REUSEADDR option.


#define SO_REUSE_RXTOALL   0

SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on. WARNING: Adds a memcpy for every packet if passing to more than one pcb!