goldsimon
2aec3a9789
use PCB_IS_IPV6(pcb) instead of pcb->isipv6 everywhere
2011-05-28 09:28:18 +00:00
goldsimon
ccd7dbe0e4
Added ipX versions for routing
2011-05-26 15:46:44 +00:00
goldsimon
92fcfd7a6f
Fixed two compilation errors with different opt.h settings
2011-05-26 14:47:28 +00:00
goldsimon
6865806b55
Combined IPv4 and IPv6 code where possible, added defines to access IPv4/IPv6 in non-IP code so that the code is more readable.
2011-05-25 17:16:35 +00:00
goldsimon
4bfbe7ebeb
... and finally, we got a first working version of a dual-stack lwIP runnin IPv4 and IPv6 in parallel - big thanks to Ivan Delamer! (this is work in progress, so please beware, test a lot and report problems!)
2011-05-17 19:35:14 +00:00
goldsimon
3bad9f013e
Fixed bug #32820 (Outgoing TCP connections created before route is present never times out) by starting retransmission timer before checking route.
2011-03-27 13:00:54 +00:00
goldsimon
4495516497
Removed 'dataptr' from 'struct tcp_seg' and calculate it in tcp_zero_window_probe (the only place where it was used).
2011-03-27 12:56:16 +00:00
goldsimon
4ace50a7d7
Fix alignment checking of tcphdr: check for MEM_ALIGNMENT, not for 4
2010-11-20 17:30:48 +00:00
goldsimon
dae247809b
Add preprocessor-macros for compile-time htonl calculation (and use them throughout the stack where applicable)
2010-05-16 15:57:42 +00:00
goldsimon
3c96819a2c
Make LWIP_NETIF_TX_SINGLE_PBUF work for TCP, too
2010-03-26 16:54:15 +00:00
goldsimon
57594ad7b6
tcp_write: moved initial checks to an own static function for clarity
2010-03-20 12:08:07 +00:00
goldsimon
7466474365
Fixed compiler warnings when casting where we know the source is aligned (by casting to void-pointer first)
2010-03-15 10:44:19 +00:00
goldsimon
f83ace2034
task #6849 : Calculate checksum when creating TCP segments, not when (re-)transmitting them.
2010-03-14 11:26:05 +00:00
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