Please refer to the CHANGELOG for a complete list of all changes made in version 1.3.1. The following are some particular notes and gotchas that you should be aware of if you are updating your code from 1.3.0 to 1.3.1. For updates to earlier versions please see LwIP version 1.3.0 release notes.
- Sockets API
lwip_accept()
returnsEWOULDBLOCK
if it would block on non-blocking socket.- Implement the
SO(F)_BROADCAST
filter for all API layers. Some changes to behaviour ifIP_SOF_BROADCAST
is enabled set_errno
can be overridden- The arguments of some socket functions have been fixed to match the standard
- Timeout error is no longer classed as fatal
- Netconn API
- Added configurable default value for
netconn->recv_bufsize: RECV_BUFSIZE_DEFAULT
- Added configurable default value for
- TCP
- Timestamp option now supported
- API to tcp_enqueue() has changed, but as not part of the public API this should have little impact on external code.
- Improvements to Nagle algorithm so segment is sent when full even though
unsent->next == NULL
- unsent and unacked queues are now sorted by sequence number
- Update documentation for
tcp_connect()
: iftcp_connect()
failspcb->err
is called, notpcb->connected
- PSH bits are set correctly when packets are merged
tcp_abandon()
function added to drop a connection without sending a RST- TCP window update algorithms improved
- IP
- Added
ip_current_netif()
andip_current_header()
to receive extended info about the currently received packet.
- Added
- Other
- The current version of the stack is now available using
LWIP_VERSION
- The err_t type is now overridable to use a more efficient type (define LWIP_ERR_T in cc.h)
- The debug statistics display can now be configured to display individual modules stats, and more modules are supported.
- AUTOIP now has a customizable "seed" address
- New AUTOIP option: LWIP_DHCP_AUTOIP_COOP_TRIES. It can be set to a very low value (1) to get an AutoIP address immediately after boot. Documented in opt.h, the default value provides the same behaviour as 1.3.0.
- DNS supports a static hosts table and
DNS_LOOKUP_LOCAL_EXTERN()
can be defined as an external function for lookup. SYS_LIGHTWEIGHT_PROT
now works withNO_SYS=1
- Newline characters correctly handled in
inet_aton()
- Compilation on 64-bit hosts fixed
- Calling
mem_free/pbuf_free
from interrupt context isn't safe: setLWIP_USE_HEAP_FROM_INTERRUPT
to 1 in lwipopts.h or usepbuf_free_callback(p)/mem_free_callback(m)
to free pbufs or heap memory from interrupt context
- The current version of the stack is now available using