goldsimon
d13ac66cc4
Fixed sending one byte of data in tcp_zero_window_probe (which I accidentally broke with v1.103)
2010-03-14 09:43:10 +00:00
goldsimon
ad4a869b94
Some fixes to the TCP_OVERSIZE code:
...
- fix compiling with TCP_OVERSIZE==0;
- fix segment-size calculation when options are used;
2010-03-13 14:29:13 +00:00
goldsimon
097e8c8eb4
Fixed some issues in the TCP_OVERSIZE code:
...
- reset tcp_pcb.unsent_oversize when last_unsent is changed;
- added TCP_OVERSIZE_DBGCHECK: check tcp_pcb.unsent_oversize vs. (debug-only) tcp_seg.oversize_left to ensure the pcb counter is correct;
- fixed a memory leak in tcp_write;
2010-03-12 15:40:01 +00:00
goldsimon
36d7f50d77
Renamed tcp_output_set_header to tcp_output_alloc_header and included more code common to all callers
2010-03-09 16:29:19 +00:00
goldsimon
3bfc07eb92
Added comment, use braces for single-line if-blocks
2010-03-09 15:49:57 +00:00
goldsimon
5d20e690fd
Added/corrected casts
2010-03-08 12:17:29 +00:00
goldsimon
92beddd72f
task #7013 (Create option to have all packets delivered to netif->output in one piece): Always copy to try to create single pbufs in tcp_write.
2010-03-06 11:55:00 +00:00
goldsimon
b6542b977e
task #7040 (Work on tcp_enqueue): Don't waste memory when chaining segments, added option TCP_OVERSIZE to prevent creating many small pbufs when calling tcp_write with many small blocks of data. Instead, pbufs are allocated larger than needed and the space is used for later calls to tcp_write.
2010-03-05 11:14:31 +00:00
goldsimon
bcd4b76d31
Moved stack-internal parts of tcp.h to tcp_impl.h, tcp.h now only contains the actual application programmer's API
2010-02-21 11:35:21 +00:00
goldsimon
96e9689dbd
Use new macro ip_addr_copy where applicable
2010-02-14 12:42:49 +00:00
goldsimon
5d360a6711
Replaced struct ip_addr by typedef ip_addr_t to make changing the actual implementation behind the typedef easier.
2010-02-04 18:47:44 +00:00
goldsimon
a23b446ddf
Use macros defined in ip_addr.h (some of them new) to work with IP addresses (preparation for bug #27352 - Change ip_addr from struct to typedef (u32_t) - and better code).
2010-02-04 17:21:32 +00:00
goldsimon
5fa0347e64
Cleanly separate the portability file inet.h and its contents from the stack: moved htonX- functions to def.h (and the new def.c - they are not ipv4 dependent), let inet.h depend on ip_addr.h and not the other way round. This fixes bug #28732 .
2010-01-29 08:20:32 +00:00
goldsimon
e678e1bdcb
bug #28659 : Missing casts
2010-01-25 08:24:30 +00:00
goldsimon
dbcce3a4be
bug #26523 : Compiler Warnings
2010-01-23 17:48:36 +00:00
goldsimon
7d46e06824
Fixed bug #28106 : dup ack for fast retransmit could have non-zero length
2009-12-03 19:42:35 +00:00
goldsimon
478ccee5fc
tcp_rexmit(): no need to call tcp_output, since always called from tcp_input and thus tcp_output always returns without sending (prevent confusion by thinking data was sent while in tcp_rexmit!)
2009-11-26 16:44:16 +00:00
goldsimon
a939c09a6b
Fixed bug #27905 : FIN isn't combined with data on unsent
2009-11-22 17:55:03 +00:00
goldsimon
f4c0655190
Fixed usage of logging levels (bug #27948 : Incorrect logging levels used in various places)
2009-11-22 15:14:46 +00:00
kieranm
dee1d82c11
re-work the fast retransmission code to follow algorithm from TCP/IP
...
Illustrated
2009-10-29 15:48:57 +00:00
goldsimon
f1b82e0e9a
bug #27315 : zero window probe and FIN: only send pure FIN if the enqueued FIN segment doesn't contain any other data
2009-10-21 15:15:34 +00:00
goldsimon
502e89f4ad
Fixed bug #27315 : zero window probe and FIN
2009-10-16 21:07:48 +00:00
goldsimon
ac638c85f3
Fixed bug #27504 : tcp_enqueue wrongly concatenates segments which are not consecutive when retransmitting unacked segments
2009-10-11 13:06:44 +00:00
kieranm
c232edb83a
BUG26301 and BUG26267: correct simultaneous close behaviour, and make
...
snd_nxt have the same meaning as in the RFCs.
2009-06-25 09:57:36 +00:00
goldsimon
36e3d24331
Fixed a bug in tcp_enqueue introduced with v1.79 of this file while fixing bug #25094 (zero-length pbuf)
2009-04-27 19:00:23 +00:00
goldsimon
261dfdf010
fixed bug #24212 : "Deadlocked tcp_retransmit due to exceeded pcb->cwnd": Fixed by sorting the unsent and unacked queues (segments are inserted at the right place in tcp_output and tcp_rexmit)
2009-04-26 12:27:11 +00:00
goldsimon
ed65d9cd75
Fixed bug #26236 : "TCP options (timestamp) don't work with no-copy-tcpwrite": deallocate option data, only concat segments with same flags
2009-04-19 12:42:48 +00:00
goldsimon
542b8fffb1
Fixed bug #25094 : "Zero-length pbuf" (options are now allocated in the header pbuf, not the data pbuf); added function comments; "inline" is not supported by ANSI C (tcp_build_timetamp_option)
2009-04-19 12:31:16 +00:00
goldsimon
580f334274
patch #6808 : Add a utility function ip_hinted_output() (for smaller code mainly)
2009-04-15 19:32:01 +00:00
kieranm
f1a9f7ea70
BUG20515: rework way TCP window updates are calculated and sent
2009-03-31 14:23:40 +00:00
kieranm
4b14621208
TASK9218: add support for TCP timestamp options
2009-03-31 14:13:32 +00:00
kieranm
e7a2ab5de9
BUG26010: set push bit correctly when tcp segments are merged
2009-03-31 10:53:11 +00:00
kieranm
fd41c5de2d
Correct change to probe window setting
2009-03-27 11:04:04 +00:00
kieranm
84505d4cc8
BUG25629: set TCP_ACK flags on keepalive and zero window probes
2009-03-26 14:25:46 +00:00
kieranm
6f00cbb6ef
2008-01-15 Kieran Mansley
...
* tcp_out.c: BUG20511. Modify persist timer to start when we are
prevented from sending by a small send window, not just a zero
send window.
2008-01-15 13:00:51 +00:00
kieranm
99afb15ced
Add persist timer
2007-12-31 13:34:47 +00:00
kieranm
1cb470662b
Whitespace fix.
2007-12-20 15:05:09 +00:00
kieranm
8cc32bc29c
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)
2007-12-20 14:51:35 +00:00
goldsimon
dc515c7ad3
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'
2007-11-21 17:59:03 +00:00
goldsimon
1faf0ab9e3
Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into inet and chksum part; changed includes in all lwIP files as appropriate
2007-11-16 19:31:10 +00:00
goldsimon
8020ba2dc5
tcp_send_ctrl(): call tcp_enqueue with the new flag TCP_WRITE_FLAG_COPY instead of 1
2007-11-12 19:38:25 +00:00
fbernon
cbe9b050a9
sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h, tcp_out.c: Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used at socket api layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE at raw api layer. This option enable to delayed TCP PUSH flag on multiple "write" calls. Note that previous "copy" parameter for "write" APIs is now called "apiflags".
2007-11-01 17:37:50 +00:00
fbernon
e3cd1ac1f9
Minor changes (but in lot of files): add #if/#endif for options where they could miss. #if LWIP_xxx if always put after #include "lwip/opt.h" (note this one indirectly include cc.h). Move others includes inside #if/#endif block.
2007-09-07 23:01:59 +00:00
fbernon
9152d6671c
Comments Fix for Doxygen documentation
2007-08-09 22:21:44 +00:00
goldsimon
8be76ed450
tcp_enqueue: pcb->snd_queuelen didn't work for chaine PBUF_RAMs: changed snd_queuelen++ to snd_queuelen += pbuf_clen(p).
2007-07-25 08:46:41 +00:00
goldsimon
eb875de67e
Added assertions where PBUF_RAM pbufs are used and an assumption is made that this pbuf is in one piece (i.e. not chained). These assumptions clash with the possibility of converting to fully pool-based pbuf implementations, where PBUF_RAM pbufs might be chained.
2007-07-03 20:28:35 +00:00
goldsimon
96e4ec4a15
Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table indices with each pcb instead of single-entry cache for the complete stack.
2007-07-02 20:41:22 +00:00
goldsimon
fa4b711495
Added some ASSERTS and casts to prevent warnings when assigning to smaller types.
2007-07-02 20:13:45 +00:00
goldsimon
9abbb581c5
Changed tcp_pcb->snd_queuelen from u8_t to u16_t to prevent overflowing when sending many small packets with big send buffer, added assertions and oveflow checks for snd_queuelen.
2007-07-01 15:56:04 +00:00
goldsimon
6c3c184bc7
Added check to prevent tcp_pcb->snd_queuelen from overflowing.
2007-06-29 17:09:47 +00:00