goldsimon
95425552d7
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 .
2007-11-21 18:37:23 +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
fbernon
4a6f60937a
Minor change, add comment for "apiflags" parameters.
2007-11-01 19:38:01 +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
goldsimon
298d5cf042
Fixed bug #21491 : The MSS option sent (with SYN) is now based on TCP_MSS instead of pcb->mss (on passive open now effectively sending our configured TCP_MSS instead of the one received).
2007-11-01 16:23:32 +00:00
goldsimon
199648ff37
Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero!
2007-10-09 19:59:56 +00:00
kleshov
f600a868f5
Indentation fix
2007-09-13 17:46:13 +00:00
fbernon
8205737fdb
sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only contains IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no size change). Use this new field to access to common pcb fields (ttl, tos, so_options, etc...). Enable to access to these fields with LWIP_TCP=0.
2007-09-07 23:47:02 +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
027a70a415
Last sanity checking centralization for "task #7142 : Sanity check user-configurable values".
2007-09-07 17:59:30 +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
24e29cecae
Fixed bug #20287 : Fixed nagle algorithm (sending was done too early if a segment contained chained pbufs)
2007-06-28 20:05:38 +00:00
goldsimon
2aef8bad55
Moved the nagle algorithm from netconn_write/do_write into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too.
2007-06-21 18:55:09 +00:00
goldsimon
8532d0d152
Added comments for the callback functions included in struct tcp_listen_pcb
2007-06-16 15:04:50 +00:00
goldsimon
066daf21ef
Added comments for the callback functions included in structs tcp_pcb, udp_pcb and raw_pcb.
2007-06-16 14:33:37 +00:00
goldsimon
5ee9c95ebd
Fixed a cast warning by including the type to TCP_PCB_COMMON: (Moved members common to structures tcp_pcp and tcp_listen_pcb into define TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.)
2007-06-08 12:00:45 +00:00
goldsimon
a14bc9ed44
Moved members common to structures tcp_pcp and tcp_listen_pcb into define TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.
2007-06-08 11:28:47 +00:00
goldsimon
874415a193
Added comments whether fields are host or network byte order (task #1568 )
2007-05-17 12:21:32 +00:00
goldsimon
efd3104fd0
Fixed bug from patch #5865 by moving the defines for socket options (lwip_set/-getsockopt) used with level IPPROTO_TCP from tcp.h to sockets.h.
2007-05-13 14:34:02 +00:00
goldsimon
84fc489e0c
Included patch #5448 : include '#ifdef __cplusplus \ extern "C" {' in all header files. Now you can write your application using the lwIP stack in C++ and simply #include the core files. Note I have left out the netif/ppp/*h header files for now, since I don't know which files are included by applications and which are for internal use only.
2007-05-10 10:59:20 +00:00
kieranm
79be888b6f
* tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission
...
timer is reset to fix bug#19434, with help from Oleg Tyshev.
2007-04-12 14:56:07 +00:00
kieranm
05909d6fa7
Apply patch #5745 : Fix "Constant is long" warnings with 16bit
...
compilers. Contributed by avatar@mmlab.cse.yzu.edu.tw
2007-04-11 13:32:41 +00:00
fbernon
5c65d4733b
Keepalive values can be configured at run time with LWIP_TCP_KEEPALIVE, but don't change this unless you know what you're doing (default are RFC1122 compliant). Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds.
...
Old TCP_KEEPALIVE can always be used, and its only difference with TCP_KEEPIDLE is this last use seconds and not milliseconds with setsockopt.
Some documentation (not perfect, but...):
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/setsockopt.htm
2007-03-11 15:53:43 +00:00
fbernon
86cecd6700
Keepalive values can be configured at compile time, but don't change this unless you know what you're doing (default are RFC1122 compliant).
2007-03-08 21:02:39 +00:00
christiaans
d4b6471d39
Replaced tabs with space.
2006-11-17 10:51:13 +00:00
christiaans
b5f4672155
Partially accepted patch #5449 for ANSI C compatibility / build fixes. Fixed bug #17574 corrected UDP-Lite protocol identifier.
2006-10-11 12:04:04 +00:00
christiaans
e1b215aa73
Introduced cc.h formatters and removed SO_REUSE from transport layers.
2005-11-25 12:03:38 +00:00
likewise
a549ec0382
Added inline source documentation.
2004-12-27 14:42:02 +00:00
kieranm
4e309b7992
Kieran Mansley - kjm25@cam.ac.uk - 24th Nov 2004
...
* Changed pcb->rttest from u16_t to u32_t - comparisons with tcp_ticks (which is u32_t) were failing after 9 hours of operation
2004-11-24 17:04:34 +00:00
likewise
252dcd8626
Reverted back the TCP_BETWEEN macro. It does not work on all archs.
2004-10-14 12:24:52 +00:00
kieranm
2ed5bc5195
Kieran Mansley - kjm25@cam.ac.uk - 12th September 2004
...
Applied patch from Sam Jansen as detailed in
http://lists.gnu.org/archive/html/lwip-users/2004-07/msg00106.html
to correctly handle retransmission after a retransmission timeout
2004-09-12 16:34:06 +00:00
kieranm
a3d27e30e0
Add TCP_SEQ_BETWEEN macro for comparing a range of sequence numbers
2004-09-12 15:56:12 +00:00
likewise
89abd1f58e
Do no longer try to free pbuf when TCP_EVENT_RECV() is called without a callback handler, and without packet.
...
The standard HTTP server failed on this (as reported by three users).
2004-09-08 22:33:46 +00:00
likewise
e4295396ac
Re-instantiated the pack directives. Nested structs do break individual field natural alignment on arm-gcc.
2004-05-06 03:27:13 +00:00
likewise
79110ba469
Removed all structure packing directives. Protocol header fields are naturally aligned by design.
...
(Earlier, the 14-byte ethernet header screwed this up, this had already been fixed by adding two pad bytes.)
Assumption is that compilers do not align with larger-than-sizeof(type) boundaries.
Pre-tag PRE_PACK_REMOVE. Post-tag POST_TAG_REMOVE.
2004-05-05 19:16:51 +00:00
jani
4ea55b1bbc
only include sys.h once. Noted by Tom Barker
2004-03-09 14:03:11 +00:00
likewise
475576ec20
Updated some copyright notices to include 2004 (a few were forgotten earlier).
2004-02-07 23:24:09 +00:00
likewise
1ed40e7983
Applied alias.diff by Ian Wienand on lwip-devel on February 4th 2004.
...
Using union to make explicit either tcp_listen_pcb or tcp_pcb.
2004-02-06 23:48:40 +00:00
likewise
e4a6d199fe
Merged from DEVEL into main tree.
2003-11-14 13:17:23 +00:00
kieranm
8014551908
Changed DEBUGF to LWIP_DEBUGF
2003-06-10 10:45:29 +00:00
likewise
df99ce9d98
Replaced all tabs with two spaces (regardless of indentation is correct).
2003-06-09 21:14:47 +00:00
jani
cd65d36822
patches 1492, 1493 and 1494 from Marc
2003-05-19 14:41:54 +00:00
likewise
9bc16878ea
Fixed tabs into spaces. Fixed other stylos.
2003-04-16 07:39:48 +00:00
jani
441e9b8431
add tcpip_callback patch from Marc
2003-03-19 11:23:46 +00:00
jani
18df3961e9
byte-order handling functions are in inet.c now and the uperrcase counterparts are gone. opt.h has all the
...
configurable items debug does not need to be directly included.
2003-02-21 16:43:46 +00:00
davidhaas
7f1becc682
Allow minimal unix target to build in cygwin (but not necessarily run).
...
Applied a patch from Marc Boucher which has the following changes:
1) Fixed sys_arch.txt documentation to have new return type from
sys_thread_new.
2) Removed unnecessary casts on calling sys_timeout() in certain files.
3) Removed some unnecessary break statements after return statements.
4) Changed sys_timeout_remove() to sys_untimeout().
5) Added some forgotten #ifndef SYS_LIGHTWEIGHT_PROT to memp.c
6) Changed LWIP_DIAG and LWIP_PLATFORM_ASSERT to have do while().
2003-02-18 19:27:48 +00:00
jani
1868b2d244
tcp_timer_needed should be a noop when using the raw API.Fix link error bug #2489
2003-02-07 10:13:51 +00:00
davidhaas
dd2fa15e8a
Add the following features and bugfixes:
...
Added select() functionality to sockets library.
Support for errno in sockets library.
Byte ordering fixes.
basic lwip_ioctl(), FIONREAD, get/setsockopt() etc. support
- added additional argument to netif_add to pass state pointer so that the
if_init function has access to context information before
the interface is added, without accessing globals.
- added netif_remove()
- to conserve cpu load the tcpip_tcp_timer should only be active
when tcbs that need it exist.
- pass length of available data to callbacks for NETCONN_EVT_RCV events
- added tcpip_link_input(), a hack to allow processing of PPP
packets in tcpip_thread() context. This saves threads and context
switches.
- renamed incompatible ASSERT() macro to LWIP_ASSERT() to avoid name
collision.
- changed a bunch of %d's to %u's in format strings for unsigned values.
- added ip_frag to lwip_stats.
- changed IP_REASS_MAXAGE and IP_REASS_TMO defaults to more realistic
values.
- added sys_timeout_remove() function to cancel timeouts (needed by PPP
amongst other things).
- tolerate NULL returns from sys_arch_timeouts() since some threads might
not need to use or have timeouts.
- added sys_sem_wait_timeout()
- moved mem_malloc() function to end of mem.c to work around tasking
compiler bug.
- automatically bind to local tcp port if 0.
- allow customization of port ranges for automatic local bindings.
- corrected various typos, spelling errors, etc..
Thanks to Marc Boucher for many of these changes.
2003-02-06 22:18:56 +00:00
jani
42309b5d6f
put a state field in listen PCBs to since they are often treated as normal pcbs. patch #922 , bug #2114
2003-01-17 14:18:55 +00:00