Commit Graph

269 Commits

Author SHA1 Message Date
fbernon
9b143dd5dc Based on patch from Dmitry Potapov, bug#19225.
Add asserts inside bind, connect and sendto to check input parameters. Remove excessive set_errno() calls after get_socket(), because errno is set inside of get_socket(). Move last sock_set_errno() inside lwip_close.
2007-03-11 16:53:37 +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
fdcb87db19 Implement LWIP_SO_RCVTIMEO configuration option to enable/disable SO_RCVTIMEO on UDP sockets/netconn. 2007-03-08 20:58:46 +00:00
goldsimon
a868832776 Initialize dhcp timers in tcpip_thread (if LWIP_DHCP) to protect the stack from concurrent access. 2007-03-08 10:37:31 +00:00
fbernon
7cda728469 Fix some "little" build problems, and a redundancy call to "lwip_stats.link.recv++;" in low_level_input() & ethernetif_input().
If LINK_STATS was defined, tcpip.c couldn't be build.
Even if IP_FRAG or IP_REASSEMBLY were set, ip_frag.c functions are not build.
2007-03-06 19:31:49 +00:00
fbernon
7fd37d4e87 Implement SO_RCVTIMEO on UDP sockets/netconn. 2007-03-06 16:41:02 +00:00
fbernon
ed07d481d6 opt.h, ip_frag.h, tcpip.h, tcpip.c, ethernetif.c: add new configuration option named ETHARP_TCPIP_ETHINPUT, which enable the new tcpip_ethinput. Allow to do ARP processing for incoming packets inside tcpip_thread (protecting ARP layer against concurrent access). You can also disable old code using tcp_input with new define ETHARP_TCPIP_INPUT set to 0. Older ports have to use tcpip_ethinput. 2007-03-06 14:18:02 +00:00
goldsimon
7115975212 fixed compiler warning "initialization dircards qualifiers from pointer target type" 2007-03-06 07:28:22 +00:00
fbernon
1ffd049833 api_msg.c: Remove some compiler warnings : parameter "pcb" was never referenced. 2007-03-04 16:25:04 +00:00
fbernon
12e0a2ef7d api_lib.c: Fix "[patch #5764] api_lib.c cleanup: after patch #5687" (from Dmitry Potapov).
The api_msg struct stay on the stack (not moved to netconn struct).
2007-03-04 14:49:46 +00:00
goldsimon
bb8522b737 tcpip.c: Moved call to ip_init(), udp_init() and tcp_init() from tcpip_thread() to tcpip_init() 2007-03-03 16:22:38 +00:00
kieranm
527d18a526 2007-02-28 Kieran Mansley (based on patch from Simon Goldschmidt)
* api_lib.c, tcpip.c, memp.c, memp.h: make API msg structs allocated
    on the stack and remove the API msg type from memp
2007-02-28 14:15:43 +00:00
kieranm
c52ac01fbc sockets.c: Fix BUG#19161 - ensure milliseconds timeout is non-zero
when supplied timeout is also non-zero
2007-02-28 12:52:44 +00:00
jifl
75beb3bd35 Fix incorrect comparison in get_socket().
Spotted by Frederic Bernon.
2007-02-26 20:16:38 +00:00
jifl
1d22294974 * sockets.h, sockets.c: Move socket initialization to new
lwip_socket_init() function.
2007-02-26 20:01:04 +00:00
jifl
de665f7cf9 2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt)
* api_lib.c: Use memcpy in netbuf_copy_partial.
2007-02-26 19:49:49 +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
729da3c873 Fixed Nagle algorithm as reported by Bob Grice. 2006-10-10 07:48:27 +00:00
christiaans
a82e02ef15 Partial fix for bug #15926, flushing TCP output in do_close(). 2006-08-07 10:00:44 +00:00
christiaans
63140ca7f8 Applied patch for cold case bug #11135. 2006-06-27 10:33:52 +00:00
christiaans
1f01634029 Applied patch #5146 to handle allocation failures in accept() by Kevin Lawson. 2006-06-14 08:02:35 +00:00
christiaans
7026bbcdd4 Removed conn->sem creation and destruction from netconn_write() and added sys_sem_new to netconn_new_* 2006-05-26 07:39:39 +00:00
christiaans
00f8cf57cd Added IP reassembly timer. 2006-03-01 14:51:58 +00:00
christiaans
182e1909b2 Patch from Curt McDowell fixes err_to_errno macro. 2006-02-13 08:14:11 +00:00
christiaans
e1b215aa73 Introduced cc.h formatters and removed SO_REUSE from transport layers. 2005-11-25 12:03:38 +00:00
likewise
0e96ece6c6 Surround definition of tcp_timer_needed with #if !NO_SYS #endif. (see lwip-users 15-11-2004). 2004-11-28 18:23:00 +00:00
jani
8afd3e882e #if directive style fix 2004-11-09 11:44:06 +00:00
kieranm
19d8ffe177 Kieran Mansley - kjm25@cam.ac.uk - 20th September 2004
* Check if the pbuf is NULL before freeing it, when draining the mbox as part of netconn_delete.
2004-09-20 16:58:01 +00:00
softins
a4f5673ff3 Small corrections to some debugging statements, to pacify compiler. 2004-07-22 08:06:00 +00:00
softins
afc3bc6b65 Added trivial (int) cast to keep compiler happier. 2004-07-21 08:57:05 +00:00
softins
6f066fca82 Changed recv_raw() from int to u8_t, to match prototype of raw_recv() in raw.h
and so avoid compiler error.
2004-07-21 08:55:26 +00:00
likewise
8d052ecf24 Source documentation added. 2004-07-12 20:42:16 +00:00
likewise
25a0273b05 LWIP_TIMEVAL_PRIVATE must be defined in architecture cc.h file, either 1 or 0. Defaults to 1.
Dependencies on C library memset() etc., so include <string.h> and <errno.h>.
2004-07-04 23:43:02 +00:00
jani
6d704c728e do not export struct timeval to external users of socket.h to avoid conflicts 2004-03-26 13:21:35 +00:00
kieranm
2c8aa6f6f4 Kieran Mansley - kjm25@cam.ac.uk - 23rd March 2003
- Changed all #ifdef SO_REUSE into #if SO_REUSE
2004-03-23 19:33:53 +00:00
likewise
6f7c8fb355 Made #ifdef's into #if's for SO_REUSE. 2004-03-23 00:19:38 +00:00
likewise
e1c4bfad05 Merged from DEVEL, except for the API change in etharp.c. 2004-02-07 00:30:03 +00:00
likewise
e4a6d199fe Merged from DEVEL into main tree. 2003-11-14 13:17:23 +00:00
marcbou
351e590e01 Merged from DEVEL. 2003-06-27 20:46:11 +00:00
likewise
ba786dc49b Applied patch #1596 fixing wrongly cast LWIP_DEBUGF arguments.
(printf expects integers on the var args stack)
2003-06-11 22:11:42 +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
03bc7c868b Major stylo search/replace for "One space between keyword and opening bracket." 2003-05-01 13:24:01 +00:00
davidhaas
0bce6f8974 Fixed bug where tearing down a connection would cause loss of memory. 2003-04-09 20:12:12 +00:00
kieranm
01a53d955e Fixed bug in do_delcon (set tcp_arg to NULL) 2003-03-31 09:35:47 +00:00
kieranm
a5be8fe82c Fixed bug in netconn_peer (test pcb for NULL before accessing) 2003-03-31 09:34:56 +00:00
davidhaas
f9e4f4d813 Typo bug. The wrong semaphore was being signalled. 2003-03-24 15:53:38 +00:00
jani
859f06a91e if LWIP_TCP is 0 do not link in TCP code.putting ugly ifdefs in api and core :(.Also only udp_init if LWIP_UDP is on 2003-03-21 10:48:21 +00:00
davidhaas
32d9f25a6f Fixed up and made work a PBUF_REF type. Most of the code uses this now
instead of PBUF_ROM. This addition allows support of copy-on-demand where the
lower layers can call pbuf_unref() which tests for any PBUF_REF buffers and
replaces them with PBUF_POOL buffers. This is now used
everywhere. pbuf_unref() is called in ARP queueing and in the coldfire
driver, which puts frames on a DMA queue and frees them later.

Along with this change pbuf_free() now goes through the entire chain of
buffers and tests all the ref counters, not just the first one. Generally now
pbuf_ref_chain() should be called and not pbuf_ref(). This change was made
because it is possible for the head of the pbuf chain to have a different
count than the payload pbuf which might have been passed by the application.
2003-03-19 22:14:49 +00:00
jani
84697ce713 Add priority argument to thread sys_thread_new.Patch from floriZ but slightly modfied 2003-03-19 15:27:56 +00:00
jani
441e9b8431 add tcpip_callback patch from Marc 2003-03-19 11:23:46 +00:00
jani
eb1a41f3c9 socket functions use socklen_t, patch from floriZ.Also set/getsockopt use void * instead of char * as fourth arg 2003-03-03 10:29:21 +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
da40fbd054 move FD_SET defines to sockets.h from arch.h .Last arg of select is not a const according to linux and openBSD manpages 2003-02-17 11:34:48 +00:00
davidhaas
7b3e158c92 sys_thread_new() now returns the thread (request from Marc Boucher).
Removed some unused .h files in coldfire port.

Support LWIP_DIAG and LWIP_ASSERT in coldfire (sort of).

Fix to last api fix to make sure select() is triggered, even when there has
been a FIN.

Allow build of unixsim from cygwin by specifying "make ARCH=cygwin" or from
linux by specifying "make ARCH=linux".
2003-02-11 21:00:14 +00:00
jani
848dea2058 Only access non-NULL pbufs on some paths where they can be NULL in newly introduced callback code 2003-02-11 16:33:02 +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
442f46a1ce recvfrom accesses freed netbuf.If it's reused in the small window by another thread recvfrom returns bad from info.Patch #1041 by Florian Zschocke 2003-01-31 12:51:56 +00:00
jani
6d0a8a85c7 Fix locking for disconnect operation (use post and fetch on the connection's mbox in the two threads like other operations).Make netconn_peer take a pointer to addr instead of pointer to pointer to addr.Addr is a 4 byte struct an IP address so use structure assignment not just pointer assignment when saving the peer.This way the address is really saved :fixes bug #1897 2003-01-24 09:24:44 +00:00
jani
721d237120 Fixes so that UDP connect() works.Enable generation of ICMP destination unreachable when the port is unavailable 2003-01-23 16:46:01 +00:00
jani
46c575c038 Fix udp_bind to allow rebind for same socket (yesterday's commit broke that) and introduce connection info for UDP pcbs.New function netconn_disconnect, do_disconnect for deatching UDP from a remote addres.Fix #2240 2003-01-22 16:18:05 +00:00
jani
16434f0d01 Don't allow multiple binds to the same UDP port/address pair.Closes bug #1896 2003-01-21 14:09:31 +00:00
likewise
cc4df7100d Updated lwIP module copyright years to include 2003. Committers must check theirs. 2003-01-08 10:09:39 +00:00
jani
c0a8ef6f6f Use C style comments.In debug stataments cast various struct pointers to void* to
avoid printf warnings.misc warnings in etharp.
2002-12-17 09:41:16 +00:00
jani
428293a69b make lwip_write() use lwip_send() and avoid code duplication.return copylen
in lwip_recvfrom since it has already been chosen as the minimum
of len and buflen.
2002-11-15 15:05:06 +00:00
kieranm
f975754ad9 Initialize err in do_close to prevent compiler warning. 2002-11-13 21:53:36 +00:00
likewise
f06e955072 Initial revision 2002-10-19 12:59:30 +00:00