Commit Graph

156 Commits

Author SHA1 Message Date
goldsimon
dd8729063c fixed bug #31177: tcp timers can corrupt tcp_active_pcbs in some cases 2011-11-25 18:36:52 +01:00
goldsimon
0fb07ba328 - moved processing of refused_data to an own function (used from tcp_fasttmr and tcp_input);
- improved readability of tcp_slowtmr by using defines to access keepalive variables
2011-10-23 18:10:46 +02:00
Simon Goldschmidt
98274d2145 Reverted invalid fix for invalid bug #34360 done yesterday... 2011-09-23 19:26:29 +02:00
Simon Goldschmidt
1d125f55ba Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/lwip 2011-09-23 19:16:01 +02:00
Simon Goldschmidt
918470affc fixed bug #33871: rejecting TCP_EVENT_RECV() for the last packet including FIN can lose data 2011-09-23 19:14:17 +02:00
Simon Goldschmidt
797f26e45b fixed bug #34360 tcp_shutdown: RST on unacked is not send when shutting down both rx AND tx 2011-09-22 21:38:56 +02:00
Simon Goldschmidt
112158b056 Added a config option to randomize initial local TCP/UDP ports (so that different port ranges are used after a reboot; bug #33818; this one added tcp_init/udp_init functions again);
fixed a possible endless loop in tcp_new_port() if the number of active PCBs exceeds the number of available ports;
2011-09-11 12:44:01 +02:00
goldsimon
6a4c30fe5d fixed bug #31723 (tcp_kill_prio() kills pcbs with the same prio) by updating its documentation only. 2011-06-26 17:37:09 +00:00
goldsimon
4444db2990 Added some more asserts to check that pcb->state != LISTEN 2011-06-26 17:07:13 +00:00
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
853d1eac96 Fixed pointless conversion when checking TCP port range (bug #33398) 2011-05-25 17:22:56 +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
e4739da961 Fixed overflow in tcp_new_port() after changing port range to IANA "Dynamic and/or Private Ports" range 2011-04-29 11:23:04 +00:00
goldsimon
33d6dcec5b Fixed bug #33048 (Bad range for IP source port numbers) by using ports in the IANA private/dynamic range (49152 through 65535). 2011-04-13 17:52:00 +00:00
goldsimon
11b1c9f19f Fixed bug #32926 (TCP_RMV(&tcp_bound_pcbs) is called on unbound tcp pcbs) by checking if the pcb was bound (local_port != 0). 2011-03-27 17:12:26 +00:00
goldsimon
783404d8d4 Move tcp_pcb_lists to const section. 2011-03-27 13:04:16 +00:00
goldsimon
5b084f4b95 tcp_bind: return ERR_VAL instead of ERR_ISCONN when trying to bind with state!=CLOSED; fixed a typo 2011-03-13 11:15:32 +00:00
goldsimon
f418782c2c tcp_slowtmr(): change the scope of 'pcb2' to reflect its block-only usage. 2010-11-21 10:41:27 +00:00
goldsimon
4cc36b2284 Fixed bug #30728: tcp_new_port() did not check listen pcbs 2010-08-10 20:15:31 +00:00
goldsimon
cd22a8d851 Fixed bug #30565 (tcp_connect() check bound list): that check did no harm but never did anything 2010-07-28 16:48:51 +00:00
goldsimon
7f7df4ae19 Fixed bug #30447: tcp.c:tcp_bind() - suspicious nested #if 2010-07-28 16:44:59 +00:00
goldsimon
194a85387b patch #7239: make tcp_state_str pointers constant 2010-07-12 09:49:00 +00:00
goldsimon
874d1641df Fix compilation for LWIP_EVENT_API==1 (unused args) 2010-05-15 18:10:55 +00:00
goldsimon
7e5b0a9eb6 SO_REUSE: tcp_listen/tcp_connect: make sure that the 5-tuple is unique 2010-05-15 16:44:09 +00:00
goldsimon
d0348e0c60 task #6995: Implement SO_REUSEADDR (correctly) 2010-05-12 22:29:58 +00:00
goldsimon
597764e35b Minor: source code layout 2010-05-10 14:02:52 +00:00
goldsimon
49e8e28cf6 Check that tcp_abort/tcp_abandon isn't called for listen-pcbs 2010-04-21 19:55:14 +00:00
goldsimon
6fb248c9e0 task #10088: Fixed a bug in RST-on-close-when-not-all-data-acked implementation (plus removed some unnecessary casts) 2010-03-22 12:32:05 +00:00
goldsimon
124ca0fed2 tcp_listen() did not copy the pcb's prio 2010-03-22 10:06:49 +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
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
103b5a760f tcp_connect: send timestamp-option only if (pcb->flags & TF_TIMESTAMP) != NULL (same as for passive open) 2010-03-01 19:05:52 +00:00
goldsimon
2b1c389955 Fixed accessing invalid memory when closing a listening pcb (introduced with tcp_shutdown) 2010-03-01 18:43:37 +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
d9157a71bb Task #10088: Correctly implement close() vs. shutdown(). Now the application does not get any more recv callbacks after calling tcp_close(). Added tcp_shutdown(). 2010-02-20 18:05:56 +00:00
goldsimon
e131d3e32a tcp_alloc: set given prio to the new pcb, not TCP_PRIO_NORMAL; minor: changed comments and source code layout 2010-02-20 10:03:03 +00:00
goldsimon
c637441f52 tcp_seg(s)_free: remove return value, noone uses it 2010-02-16 17:20:10 +00:00
goldsimon
96e9689dbd Use new macro ip_addr_copy where applicable 2010-02-14 12:42:49 +00:00
goldsimon
8768e4488a patch #6865: use so_options SOF_REUSEADDR instead of flags TF_REUSEADDR (which has ben removed again) 2010-02-12 16:32:31 +00:00
goldsimon
d3635c5eef patch #6865 (SO_REUSEADDR for TCP): if tcp_pcb.flags has TF_REUSEADDR set, allow binding to endpoint in TIME_WAIT 2010-02-12 15:33:02 +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
kieranm
95445fc328 Ensure ssthresh >= 2*MSS 2010-01-28 13:14:42 +00:00
goldsimon
0644c4c08e Fixed bug #27871: Calling tcp_abort() in recv callback can lead to accessing unallocated memory. As a consequence, ERR_ABRT means the application has called tcp_abort()! 2010-01-27 17:22:06 +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
82318c0ef1 Fixed bug #28651 (tcp_connect: no callbacks called if tcp_enqueue fails) both in raw- and netconn-API 2010-01-21 18:43:37 +00:00
goldsimon
2d4e76874c Using typedefs for function prototypes and -pointers throughout the stack for clarity 2010-01-14 20:02:15 +00:00