goldsimon
6f1304e03e
patch by Ambroz Bizjak: fixed bug #49717 (window size in received SYN and SYN-ACK assumed scaled)
2016-11-28 10:27:21 +01:00
Dirk Ziegelmeier
f6e27940bd
Make lwIP compile with clang -Wdocumentation -> several documentation fixes
2016-10-09 12:21:39 +02:00
Dirk Ziegelmeier
13fb616bb2
Cleanup hton*/ntoh* function handling and platform abstraction
...
Let lwip use functions/macros prefixed by lwip_ internally to avoid naming clashes with external #includes.
Remove over-complicated #define handling in def.h
Make functions easier to override in cc.h. The following is sufficient now (no more LWIP_PLATFORM_BYTESWAP):
#define lwip_htons(x) <your_htons>
#define lwip_htonl(x) <your_htonl>
2016-10-06 12:55:57 +02:00
David van Moolenbroek
0d7805a86a
tcp: fix FIN ACK handling with unsent data
...
TCP's snd_nxt represents the next sequence number after sent data, and
as such does not cover any unsent data queued on the connection. The
current implementation does not take the latter point into account
when processing FIN acknowledgments, mistakenly assuming that an
outgoing FIN is ACK'ed when the acknowledgment covers up to snd_nxt
while there is still unsent data. This patch adds a check for unsent
data to correct this, effectively preventing that TCP connections are
closed prematurely.
2016-10-04 22:12:13 +02:00
Axel Lin
198fa5dbfa
Remove duplicated include for lwip/inet_chksum.h
...
Include it once is enough.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
2016-08-30 09:47:43 +02:00
goldsimon
3e23eb764b
fixed compiling TCP_OOSEQ_MAX_BYTES || TCP_OOSEQ_MAX_PBUFS (local variable 'p' was hidden)
2016-08-25 14:21:29 +02:00
goldsimon
14fb48cd7a
minor: whitespace cleanups
2016-08-19 09:41:34 +02:00
goldsimon
523b11e664
fixed bug #48543 (TCP sent callback may prematurely report sent data when only part of a segment is acked) and don't include SYN/FIN in snd_buf counter (patch by Ambroz Bizjak)
2016-07-21 13:47:52 +02:00
sg
dff46e3816
Fixed bug #48539 (possible crash when packet received in SYN_SENT state)
2016-07-19 21:23:21 +02:00
goldsimon
6adeb706a6
change tcp_pcb->acked to be a global variable: used in one call stack only (idea by Ambroz Bizjak)
2016-07-19 10:38:01 +02:00
sg
421dab87e8
fixed bug #48476 (TCP sent callback called wrongly due to picking up old pcb->acked
2016-07-11 21:43:39 +02:00
Ambroz Bizjak
18c332ae51
fixed bug #48402 (Bug in skipping over TCP options)
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-08 11:27:50 +02:00
Michael Brown
2e26fc9224
tcp: Avoid 3-second delay for a half-open connection
...
If lwIP encounters a half-open connection (e.g. due to a restarted
application reusing the same port numbers) it will correctly send a
RST but will not resend the SYN until one retransmission timeout later
(approximately three seconds). This can increase the time taken by
lpxelinux.0 to fetch its configuration file from a few milliseconds to
around 30 seconds.
Fix by immediately retransmitting the SYN whenever a half-open
connection is detected.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-04 12:25:22 +02:00
goldsimon
e6bc591a1e
fixed bug #48170 (Vulnerable to TCP RST spoofing) (original patch by Fabian Koch)
2016-06-30 08:50:42 +02:00
goldsimon
d31d2ee882
Revert "fixed bug #48170 (patch by Fabian Koch)"
...
This reverts commit 236bc194222b604f251cd86d4715cd05d9e40f94.
The fix introduced bug #48328 -> reverted
2016-06-30 08:41:50 +02:00
goldsimon
236bc19422
fixed bug #48170 (patch by Fabian Koch)
2016-06-27 10:31:36 +02:00
Dirk Ziegelmeier
102f5882d5
Fix several CLANG format string warnings
2016-06-25 13:06:31 +02:00
sg
4e241fbf14
some minor improvements to the tcp options checking code
2016-06-13 20:41:58 +02:00
Henrik Persson
b9a2ee8aaa
[PATCH] Drop instead of ASSERT in tcp_input header parsing
...
Since allowing input validation to trip the ASSERT handler is bad,
let's just drop the packets instead if validation fails.
Signed-off-by: sg <goldsimon@gmx.de>
2016-06-13 20:08:43 +02:00
sg
27f03798b9
Fixed possible problems with tcp_backlog_delayed/tcp_backlog_accepted
2016-03-25 16:19:39 +01:00
goldsimon
5b0a47ca87
removed unused return values of tcp_listen_input & tcp_timewait_input; fixed unused variable warning
2016-03-24 15:06:31 +01:00
sg
7721b20179
call accept-callback with ERR_MEM when allocating a pcb fails on passive open to inform the application about this error; ATTENTION: applications have to handle NULL pcb in accept callback!
2016-03-23 21:57:38 +01:00
sg
dd80759bb9
tcp: changed accept handling to be done internally: the application does not have to call tcp_accepted() any more. Instead, when delaying accept (e.g. sockets do), call tcp_backlog_delayed()/tcp_backlog_accepted() (fixes bug #46696 )
2016-03-22 07:30:44 +01:00
Dirk Ziegelmeier
f9ce31f98b
TCP: Implement dual stack support using new IP_ANY_TYPE introduced at UDP
2016-03-02 23:14:33 +01:00
Dirk Ziegelmeier
9885d5d9f5
Apply patch from Simon to fix buffer overflow handling tcp_in.c which was discovered by Coverity
2016-02-29 23:34:52 +01:00
Dirk Ziegelmeier
fd891081c4
minor: Cleanups in raw/tcp/udp code by using macros and reducing #ifdefs
2016-02-24 23:04:25 +01:00
Dirk Ziegelmeier
c805843e64
Change signature of ip_output, ip_output_if, ip_output_if_src, ip_output_hinted, ip_route, ip_netif_get_local_ip, ip_route_get_local_ip and tcp_eff_send_mss not to take an isipv6 parameter. Use the IP version of the destination address instead.
2016-02-22 13:38:40 +01:00
Dirk Ziegelmeier
880f1008d6
Together with Simon: Eliminate last instances of isipv6 member in pcbs;
...
Don't allow NULL pointers (IPv4 ANY) in connect() and sendto() functions as destinations since this does not make sense.
2016-02-22 13:03:51 +01:00
Dirk Ziegelmeier
50303eea23
Reduce PCB_ISIPV6 macro usage some more
2016-02-21 19:59:08 +01:00
Dirk Ziegelmeier
5a25652c21
Eliminate IP_PCB_IPVER_INPUT_MATCH macro
2016-02-21 19:21:36 +01:00
Dirk Ziegelmeier
5809b01388
Reduce usage of PCB IP version flag in raw and tcp code. Maybe we can figure out a good way for dual-stack UDP when we manage to remove the flag (nearly) entirely from the code.
2016-02-20 20:40:04 +01:00
Axel Lin
91586bc6f6
Drop #if TCP_DEBUG guard around tcp_debug_print_state calls
...
The #if TCP_DEBUG guard can be removed because tcp_debug_print_state()
print nothing if !TCP_DEBUG.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2015-12-02 22:32:42 +01:00
sg
c12fa7b4c4
started to move "private" header files containing implementation details to "lwip/priv/" include directory to seperate the API from the implementation.
2015-10-09 21:58:58 +02:00
goldsimon
b401f42520
minor: fixed coding style (lwip style)
2015-10-07 10:03:12 +02:00
sg
2b971400fa
minor: coding style
2015-10-06 21:57:40 +02:00
sg
22df34fc70
minor/coding style: removed spaces before line ending (from file header)
2015-10-06 21:13:15 +02:00
sg
490581a0eb
minor/coding style: removed spaces before line ending
2015-10-06 21:08:28 +02:00
sg
6f0dceee09
fixed some printf formatters (mainly for window scaling code)
2015-09-17 21:33:25 +02:00
Joel Cunningham
72b3f3f612
Hook up TCP cachehit stat
...
This commit hooks up the TCP cachehit stat to the PCB locality feature
so that when a PCB is moved to the head of the list and a segment comes
in, we consider this a cache hit
This also matches the usage of the cachehit stat in UDP
2015-09-17 17:02:39 +02:00
goldsimon
8a0fb03e21
Separate mib2 counter/table callbacks from snmp agent. This both cleans up the code and should allow integration of a 3rd party agent/mib2.
2015-09-08 09:47:30 +02:00
sg
aa0e41c389
task #12178 : hardware checksum capabilities can be configured per netif (use NETIF_SET_CHECKSUM_CTRL() in your netif's init function)
2015-09-01 22:04:15 +02:00
sg
b9a8310f4b
fixed bug #44023 : TCP ssthresh value is unclear: ssthresh is set to the full send window for active open, too, and is updated once after SYN to ensure the correct send window is used
2015-08-30 20:47:17 +02:00
goldsimon
98f98048bc
TCP window scaling: don't parse window scaling option on retransmission
2015-08-28 11:23:24 +02:00
goldsimon
06d8dba4a0
fixed bug #45559 : Window scaling casts u32_t to u16_t without checks
2015-08-28 09:23:10 +02:00
sg
de8e810792
fixed bug #45120 : Broadcast & multiple interfaces handling
2015-08-19 20:55:03 +02:00
goldsimon
11f350e63f
Fixed ~ warnings in a different way
2015-08-03 09:10:49 +02:00
goldsimon
4dc3c7a6a0
Fixed warnings about NULL check not required (ip_addr_isany) and implicit conversion (~)
2015-08-03 08:35:01 +02:00
goldsimon
f5077dc982
fixed some more missing casts...
2015-04-22 14:18:54 +02:00
goldsimon
1985579148
fixed compiler warning (signed/unsigned comparison) introduced when fixing bug #44766
2015-04-10 07:46:31 +02:00
sg
ce7e31cd04
task #12722 (improve IPv4/v6 address handling): renamed ip_addr_t to ip4_addr_t, renamed ipX_addr_t to ip_addr_t and added IP version;
...
ip_addr_t is used for all generic IP addresses for the API, ip(4/6)_addr_t are only used internally or when initializing netifs or when calling version-related functions
2015-04-09 22:21:15 +02:00