Change parameters list for sys_thread_new (see "task #7252 : Create sys_thread_new_ex()"). Two new parameters have to be provided: a task name, and a task stack size. For this one, since it's platform dependant, you could define the best one for you in your lwipopts.h. For port maintainers, you can just add these new parameters in your sys_arch.c file, and but it's not mandatory, use them in your OS specific functions.
Replace mem_malloc call by memp_malloc, and use a new MEMP_NUM_IGMP_GROUP option (see opt.h to define the value). It will avoid potential fragmentation problems, use a counter to know how many times a group is used on an netif, and free it when all applications leave it. MEMP_NUM_IGMP_GROUP got 8 as default value (and init.c got a sanity check if LWIP_IGMP!=0).
Changes for "#20503 IGMP Improvement". Initialize igmp_mac_filter to NULL in netif_add (this field should be set in the netif's "init" function). Use the "imr_interface" field (for socket layer) and/or the "interface" field (for netconn layer), for join/leave operations. The igmp_join/leavegroup first parameter change from a netif to an ipaddr. This field could be a netif's ipaddr, or "any" (same meaning than ip_addr_isany).
fbernon [Fri, 31 Aug 2007 09:42:32 +0000 (09:42 +0000)]
Minor fix (else, cause build error). Since SO_REUSE is always used in the code (even if the current code is not working), it is defined in opt.h with 0 as default value (it's normal). So, the error is not if it is defined, but if it is defined to 1.
fbernon [Thu, 30 Aug 2007 16:55:10 +0000 (16:55 +0000)]
Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf functions from api/api_lib". Now netbuf API is independant of netconn, and can be used with other API (application based on raw API, or future "socket2" API). Ports maintainers just have to add src/api/netbuf.c in their makefile/projects.
fbernon [Wed, 29 Aug 2007 21:12:32 +0000 (21:12 +0000)]
igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add igmp_start. igmp_start is call inside netif_add. Now, igmp initialization is in the same spirit than the others modules. Modify some IGMP debug traces.
fbernon [Wed, 29 Aug 2007 08:11:06 +0000 (08:11 +0000)]
Add init.h, init.c, Change opt.h, tcpip.c: Task #7213 "Add a lwip_init function" Add lwip_init function to regroup all modules initializations, and to provide a place to add code for task #7142 "Sanity check user-configurable values". Ports maintainers should remove direct initializations calls from their code, and add init.c in their makefiles. Note that lwip_init() function is called inside tcpip_init, but can also be used by raw api users since all calls are disabled when matching options are disabled. Also note that their is new options in opt.h, you should configure in your lwipopts.h (they are enabled per default).
fbernon [Wed, 29 Aug 2007 07:51:20 +0000 (07:51 +0000)]
tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for any kind of packets. These packets are considered like Ethernet packets (payload pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets are considered like IP packets (payload pointing to iphdr).
fbernon [Mon, 27 Aug 2007 10:08:53 +0000 (10:08 +0000)]
First fix for "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state and remove obsolete ones (NETCONN_RECV & NETCONN_ACCEPT).
marcbou [Sun, 26 Aug 2007 23:58:33 +0000 (23:58 +0000)]
Reset the callbacks and arg (conn) to NULL in do_close_internal(), because
TCP callbacks in api_msg.c can under certain circumstances be called with an
invalid conn pointer after the connection has been closed (and conn has been
freed).
fbernon [Sat, 25 Aug 2007 10:43:19 +0000 (10:43 +0000)]
netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up". Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK option is set.
fbernon [Wed, 22 Aug 2007 11:26:01 +0000 (11:26 +0000)]
netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in LWIP_NETIF_STATUS_CALLBACK to be coherent with new LWIP_NETIF_LINK_CALLBACK option before next release.
fbernon [Wed, 22 Aug 2007 10:04:35 +0000 (10:04 +0000)]
tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT & ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the name is tcpip_input (we keep the name of 1.2.0 function).
jgrubb [Fri, 17 Aug 2007 18:31:05 +0000 (18:31 +0000)]
Task #7143: Clean up opt.h. Made all the comment formats the same (uses Doxygen style), a couple minor reorderings. Changed a few of the default stats variables to depend on whether the modules were even used (i.e. #define TCP_STATS (LWIP_TCP) ). PPP options could still use some cleaning.
jgrubb [Fri, 17 Aug 2007 18:18:58 +0000 (18:18 +0000)]
Task #7136: Centralize mempool settings into new memp_std.h and optional user file lwippools.h. (Remove MEMP_POOL_SIZE/NUM flags, add new MEMP_USE_CUSTOM_POOLS option)
marcbou [Fri, 17 Aug 2007 02:46:43 +0000 (02:46 +0000)]
Per Frederic's suggestion, renamed
[MEMP_[NUM_]]TCPIP_MSG to [MEMP_[NUM_]]TCPIP_MSG_API
and
[MEMP_[NUM_]]TCPIP_MSG_INPUT to [MEMP_[NUM_]]TCPIP_MSG_INPKT.
Added defines in opt.h for temporary compatibility with older lwipopts.h.
marcbou [Thu, 16 Aug 2007 18:24:29 +0000 (18:24 +0000)]
Initialize newconn->state to NETCONN_NONE in accept_function;
otherwise it was left to NETCONN_CLOSE and sent_tcp() could prematurely
close the connection.
Another fix for bug #20021: by not returning an error if tcp_output fails in tcp_close, the code in do_close_internal gets simpler (tcp_output is called again later from tcp timers).
Fixed bug #20429: use the new pbuf_copy_partial instead of the old copy_from_pbuf, which illegally modified the given pbuf; Introduced pbuf_copy_partial, making netbuf_copy_partial use this function.
Fix bug #20506: Slow start / initial congestion window starts with 2 * mss (instead of 1 * mss previously) to comply with some newer RFCs and other stacks.