fbernon [Mon, 14 Jan 2008 21:07:08 +0000 (21:07 +0000)]
rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675 "Enable to refuse data on a TCP_EVENT_RECV call". Important, behavior changes for the tcp_recv callback (see rawapi.txt).
fbernon [Sat, 12 Jan 2008 11:52:21 +0000 (11:52 +0000)]
tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::sem per netconn::op_completed like suggested for the task #7490 "Add return value to sys_mbox_post".
fbernon [Fri, 11 Jan 2008 23:50:10 +0000 (23:50 +0000)]
api_msg.c, opt.h: replace DEFAULT_RECVMBOX_SIZE per DEFAULT_TCP_RECVMBOX_SIZE, DEFAULT_UDP_RECVMBOX_SIZE and DEFAULT_RAW_RECVMBOX_SIZE (to optimize queues sizes), like suggested for the task #7490 "Add return value to sys_mbox_post".
fbernon [Thu, 10 Jan 2008 21:47:52 +0000 (21:47 +0000)]
tcpip.h, tcpip.c: add tcpip_callback_with_block function for the task #7490 "Add return value to sys_mbox_post". tcpip_callback is always defined as "blocking" ("block" parameter = 1).
fbernon [Thu, 10 Jan 2008 21:34:25 +0000 (21:34 +0000)]
tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task #7490 "Add return value to sys_mbox_post".
fbernon [Sat, 5 Jan 2008 21:10:32 +0000 (21:10 +0000)]
sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h, opt.h: Introduce changes for task #7490 "Add return value to sys_mbox_post" with some modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which indicate the number of pointers query by the mailbox. There is three defines in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the netconn::acceptmbox. Port maintainers, you can decide to just add this new parameter in your implementation, but to ignore it to keep the previous behavior. The new sys_mbox_trypost function return a value to know if the mailbox is full or if the message is posted. Take a look to sys_arch.txt for more details. This new function is used in tcpip_input (so, can be called in an interrupt context since the function is not blocking), and in recv_udp and recv_raw.
fbernon [Fri, 4 Jan 2008 22:18:27 +0000 (22:18 +0000)]
rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add documentation in the rawapi.txt file.
fbernon [Mon, 31 Dec 2007 13:22:03 +0000 (13:22 +0000)]
autoip.c, etharp.c: ip_addr.h: Integrate patch #6348: "Broadcast ARP packets in autoip". The change in etharp_raw could be removed, since all calls to etharp_raw use ethbroadcast for the "ethdst_addr" parameter. But it could be wrong in the future.
goldsimon [Fri, 21 Dec 2007 16:47:56 +0000 (16:47 +0000)]
tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c, sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API applications have to call 'tcp_accepted(pcb)' in their accept callback to keep accepting new connections.
goldsimon [Fri, 21 Dec 2007 14:59:10 +0000 (14:59 +0000)]
sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698: "netconn->recv_avail is not protected" by using new macros for interlocked access to modify/test netconn->recv_avail.
kieranm [Thu, 20 Dec 2007 14:51:35 +0000 (14:51 +0000)]
2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
* tcp.c, tcp_in.c, tcp_out.c, tcp.h: fix bug #20199 (better handling
of silly window avoidance and prevent lwIP from shrinking the window)
fbernon [Wed, 5 Dec 2007 23:00:02 +0000 (23:00 +0000)]
netdb.c: add a LWIP_DNS_API_HOSTENT_STORAGE option to decide to use a static set of variables (=0) or a local one (=1). In this last case, your port should provide a function "struct hostent* sys_thread_hostent( struct hostent* h)" which have to do a copy of "h" and return a pointer ont the "per-thread" copy.
goldsimon [Tue, 4 Dec 2007 20:41:12 +0000 (20:41 +0000)]
fix bug #21699 (segment leak in ooseq): add assert that all segment lists are empty in tcp_pcb_remove before setting pcb to CLOSED state; don't directly set CLOSED state from LAST_ACK in tcp_process
fbernon [Sun, 2 Dec 2007 20:38:02 +0000 (20:38 +0000)]
Changes for coding style (typo, use LINK_STATS_INC, tabs, ident, etc...). Be careful, even if this change is minor, there is lot of lines modified, so, an error is always possible (I hope there is no problems).
goldsimon [Sun, 2 Dec 2007 15:24:02 +0000 (15:24 +0000)]
fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET. If including <sys/time.h> for system-struct timeval, LWIP_TIMEVAL_PRIVATE now has to be set to 0 in lwipopts.h
goldsimon [Sun, 2 Dec 2007 14:53:50 +0000 (14:53 +0000)]
fix bug #21656 (recvmbox problem in netconn API): always allocate a recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen netconn, this recvmbox is later freed and a new mbox is allocated for acceptmbox. This is a fix for thread-safety and allocates all items needed for a netconn when the netconn is created.
goldsimon [Fri, 30 Nov 2007 12:54:10 +0000 (12:54 +0000)]
Compacted code: moved the code creating a netconn (without pcb) from netconn_new_with_proto_and_callback to new (synchroneous) function netconn_alloc_with_proto_and_callback and call this function from netconn_new_with_proto_and_callback and accept_function.
goldsimon [Fri, 30 Nov 2007 09:44:18 +0000 (09:44 +0000)]
task #7497: Sort lists (pcb, netif, ...) for faster access UDP: move a (connected) pcb selected for input to the front of the list of pcbs so that it is found faster next time. Same for RAW pcbs that have eaten a packet.
goldsimon [Fri, 30 Nov 2007 08:55:15 +0000 (08:55 +0000)]
first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed to netif->dhcp->pcb only (if that exists) and not to any other pcb for the same port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address)
goldsimon [Wed, 28 Nov 2007 18:24:08 +0000 (18:24 +0000)]
mem_malloc with MEM_USE_POOLS=1: if size > size of biggest pool and custom pools (in addition to the MEM_POOLs) were defined, the first custom pool was used instead of asserting
goldsimon [Tue, 27 Nov 2007 21:15:44 +0000 (21:15 +0000)]
Changed error handling: ERR_MEM, ERR_BUF and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and sockets block most operations once they have seen a fatal error.
goldsimon [Wed, 21 Nov 2007 18:37:23 +0000 (18:37 +0000)]
Implemented calculating the effective send-mss based on the MTU of the netif used to send. Enabled by default. Disable by setting LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21535.
goldsimon [Wed, 21 Nov 2007 17:59:03 +0000 (17:59 +0000)]
Fixed bug #20287: tcp_output_nagle sends too early. This fixes the nagle algorithm; nagle now also works for all raw API applications and has to be explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY'