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
ac1149156d
several-files: replace some #include "arch/cc.h" by "lwip/arch.h", or simply remove it as long as "lwip/opt.h" is included before (this one include "lwip/debug.h" which already include "lwip/arch.h"). Like that, default defines are provided by "lwip/arch.h" if they are not defined in cc.h, in the same spirit than "lwip/opt.h" for lwipopts.h.
2007-09-06 16:43:43 +00:00
fbernon
ca866c0d7d
Integrate "task #7272 : LWIP_ICMP option". The new option LWIP_ICMP enable/disable ICMP module inside the IP stack (enable per default). Be careful, disabling ICMP make your product non-compliant to RFC1122, but help to reduce footprint, and to reduce "visibility" on the Internet.
2007-09-05 17:20:45 +00:00
fbernon
90a3f88c08
Change parameters list for sys_thread_new (see "task #7252 : Create sys_thread_new_ex()"). Two new parameters have to be provided: a task name, and a task stack size. For this one, since it's platform dependant, you could define the best one for you in your lwipopts.h. For port maintainers, you can just add these new parameters in your sys_arch.c file, and but it's not mandatory, use them in your OS specific functions.
2007-09-05 16:14:28 +00:00
fbernon
c1f89c5640
Move some build time checkings inside init.c for task #7142 "Sanity check user-configurable values".
2007-09-05 13:19:25 +00:00
fbernon
d4616a7fc6
Replace mem_malloc call by memp_malloc, and use a new MEMP_NUM_IGMP_GROUP option (see opt.h to define the value). It will avoid potential fragmentation problems, use a counter to know how many times a group is used on an netif, and free it when all applications leave it. MEMP_NUM_IGMP_GROUP got 8 as default value (and init.c got a sanity check if LWIP_IGMP!=0).
2007-09-04 15:15:20 +00:00
fbernon
62b4741b19
Changes for " #20503 IGMP Improvement". Initialize igmp_mac_filter to NULL in netif_add (this field should be set in the netif's "init" function). Use the "imr_interface" field (for socket layer) and/or the "interface" field (for netconn layer), for join/leave operations. The igmp_join/leavegroup first parameter change from a netif to an ipaddr. This field could be a netif's ipaddr, or "any" (same meaning than ip_addr_isany).
2007-09-03 14:53:18 +00:00
fbernon
245bce04d1
Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf functions from api/api_lib". Now netbuf API is independant of netconn, and can be used with other API (application based on raw API, or future "socket2" API). Ports maintainers just have to add src/api/netbuf.c in their makefile/projects.
2007-08-30 16:55:10 +00:00
fbernon
ab36270885
igmp.h, igmp.c: Some changes to remove some redundant code, add some traces, and fix some coding style.
2007-08-30 14:20:54 +00:00
fbernon
bd65dd8098
init.c: Add first version of lwip_sanity_check for task #7142 "Sanity check user-configurable values".
2007-08-30 10:15:17 +00:00
fbernon
cd208314e0
igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add igmp_start. igmp_start is call inside netif_add. Now, igmp initialization is in the same spirit than the others modules. Modify some IGMP debug traces.
2007-08-29 21:12:32 +00:00
fbernon
48db3a3e92
Add init.h, init.c, Change opt.h, tcpip.c: Task #7213 "Add a lwip_init function" Add lwip_init function to regroup all modules initializations, and to provide a place to add code for task #7142 "Sanity check user-configurable values". Ports maintainers should remove direct initializations calls from their code, and add init.c in their makefiles. Note that lwip_init() function is called inside tcpip_init, but can also be used by raw api users since all calls are disabled when matching options are disabled. Also note that their is new options in opt.h, you should configure in your lwipopts.h (they are enabled per default).
2007-08-29 08:11:06 +00:00
fbernon
7182fb8fb0
tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for any kind of packets. These packets are considered like Ethernet packets (payload pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets are considered like IP packets (payload pointing to iphdr).
2007-08-29 07:51:20 +00:00
fbernon
54c1025ec0
First fix for "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state and remove obsolete ones (NETCONN_RECV & NETCONN_ACCEPT).
2007-08-27 10:08:53 +00:00
marcbou
5a6b1cbf66
Added CHANGELOG entries for my recent contributions.
2007-08-27 00:14:21 +00:00
fbernon
acbf25f2eb
netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up". Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK option is set.
2007-08-25 10:43:19 +00:00
kieranm
7c90cc6aac
inet.c Modify (acc >> 16) test to ((acc >> 16) != 0) to help buggy
...
compiler (Paradigm C++)
2007-08-24 14:31:53 +00:00
fbernon
261af8dc07
netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in LWIP_NETIF_STATUS_CALLBACK to be coherent with new LWIP_NETIF_LINK_CALLBACK option before next release.
2007-08-22 11:26:01 +00:00
fbernon
42f3c24fc4
tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT & ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the name is tcpip_input (we keep the name of 1.2.0 function).
2007-08-22 10:04:35 +00:00
jgrubb
f55fafbc66
*** empty log message ***
2007-08-17 18:19:25 +00:00
fbernon
ac2932bac3
stats.h, stats.c, igmp.h, igmp.c, opt.h: Fix for bug #20503 : IGMP Improvement. Introduce IGMP_STATS to centralize statistics management.
2007-08-09 20:09:22 +00:00
fbernon
118331207b
udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast packet on a udp pcb binded on an netif's IP address, and not on "any".
2007-08-09 18:34:03 +00:00
fbernon
7c104c8fbb
igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP Improvement. This is mainly on using lookup/lookfor, and some coding styles...
2007-08-09 16:53:47 +00:00
fbernon
42eead8f41
igmp.c: Fix bug #20595 to accept IGMPv3 "Query" messages.
2007-07-26 17:10:56 +00:00
goldsimon
f4036e8352
Another fix for bug #20021 : by not returning an error if tcp_output fails in tcp_close, the code in do_close_internal gets simpler (tcp_output is called again later from tcp timers).
2007-07-25 19:24:27 +00:00
goldsimon
f9c30017b0
Fixed bug #20429 : use the new pbuf_copy_partial instead of the old copy_from_pbuf, which illegally modified the given pbuf; Introduced pbuf_copy_partial, making netbuf_copy_partial use this function.
2007-07-25 18:53:45 +00:00
goldsimon
8be76ed450
tcp_enqueue: pcb->snd_queuelen didn't work for chaine PBUF_RAMs: changed snd_queuelen++ to snd_queuelen += pbuf_clen(p).
2007-07-25 08:46:41 +00:00
goldsimon
9eff9676e9
Fix bug #20506 : Slow start / initial congestion window starts with 2 * mss (instead of 1 * mss previously) to comply with some newer RFCs and other stacks.
2007-07-25 07:31:29 +00:00
goldsimon
62c3de30b9
Fix bug #20480 : Check the pcb passed to tcp_listen() for the correct state (must be CLOSED).
2007-07-24 07:41:55 +00:00
jgrubb
05e177e2c8
+bug fix #20478 : memp_malloc now returns NULL for failed allocation (instead of NULL+MEMP_SIZE)
2007-07-14 00:21:37 +00:00
fbernon
116bcb9dfb
opt.h, netif.h, netif.c, ethernetif.c: Add new configuration option to add a link callback in the netif struct, and functions to handle it. Be carefull for port maintainers to add the NETIF_FLAG_LINK_UP flag (like in ethernetif.c) if you want to be sure to be compatible with future changes...
2007-07-13 15:00:40 +00:00
fbernon
6a452951f5
api_msg.c: Fix bug #20318 : api_msg "recv" callbacks don't call pbuf_free in all error cases.
2007-07-13 14:28:15 +00:00
fbernon
a891854ef5
Fix bug #20315 : possible memory leak problem if tcp_listen failed, because current code doesn't follow rawapi.txt documentation.
2007-07-13 13:59:11 +00:00
kieranm
4ac0580aa0
2007-07-13 Kieran Mansley
...
* src/core/tcp_in.c Apply patch#5741 from Oleg Tyshev to fix bug in
out of sequence processing of received packets
2007-07-13 12:24:32 +00:00
goldsimon
eb875de67e
Added assertions where PBUF_RAM pbufs are used and an assumption is made that this pbuf is in one piece (i.e. not chained). These assumptions clash with the possibility of converting to fully pool-based pbuf implementations, where PBUF_RAM pbufs might be chained.
2007-07-03 20:28:35 +00:00
goldsimon
9a4a5b1816
Final fix for bug #20021 and some other problems when closing tcp netconns: removed conn->sem, less context switches when closing, both netconn_close and netconn_delete should safely close tcp connections.
2007-07-03 19:29:59 +00:00
goldsimon
96e4ec4a15
Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table indices with each pcb instead of single-entry cache for the complete stack.
2007-07-02 20:41:22 +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
fbernon
b6750de9e8
sockets.h, sockets.c: Implement MSG_PEEK flag for recv/recvfrom functions.
2007-06-30 13:24:11 +00:00
goldsimon
6c3c184bc7
Added check to prevent tcp_pcb->snd_queuelen from overflowing.
2007-06-29 17:09:47 +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
fbernon
ab4c3a326f
autoip.c: replace most of rand() calls by a macro LWIP_AUTOIP_RAND which compute a "pseudo-random" value based on netif's MAC and some autoip fields. It's always possible to define this macro in your own lwipopts.h to always use C library's rand(). Note that autoip_create_rand_addr doesn't use this macro.
2007-06-28 18:05:38 +00:00
fbernon
d6fbe45296
netifapi.h, netifapi.c, tcpip.h, tcpip.c: Update code to handle the option LWIP_TCPIP_CORE_LOCKING, and do some changes to be coherent with last modifications in api_lib/api_msg (use pointers and not type with table, etc...)
2007-06-28 10:11:05 +00:00
goldsimon
2270f0d172
Fixed bug #20259 : struct udp_hdr was lacking the packin defines.
2007-06-26 07:32:17 +00:00
goldsimon
dcc2247a90
Fixed bug #20253 : icmp_dest_unreach was called with a wrong p->payload for udp packets with no matching pcb.
2007-06-25 17:30:16 +00:00
goldsimon
00b7aeb49b
Fixed bug #20220 : UDP PCB search in udp_input(): a non-local match could get udp input packets if the remote side matched.
2007-06-25 17:24:31 +00:00
goldsimon
b51d1b79a3
Combined etharp_request with etharp_raw for both LWIP_AUTOIP =0 and =1 to remove redundant code.
2007-06-24 12:51:22 +00:00
goldsimon
0c18e653e8
Introduced the option MEM_USE_POOLS to use 4 pools with different sized elements instead of a heap. This both prevents memory fragmentation and gives a higher speed at the cost of more memory consumption. Turned off by default.
2007-06-21 20:12:11 +00:00
goldsimon
f49fc35f55
Converted the length argument of netconn_write (and therefore also api_msg_msg.msg.w.len) from u16_t into int to be able to send a bigger buffer than 64K with one time (mainly used from lwip_send).
2007-06-21 19:32:26 +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
9f05cabf87
Fixed bug #20021 : Moved sendbuf-processing in netconn_write from api_lib.c to api_msg.c to also prevent multiple context-changes on low memory or empty send-buffer.
2007-06-21 18:40:21 +00:00
goldsimon
d3f0a3211d
Changed etharp to use a defined hardware address length of 6 to avoid loading netif->hwaddr_len every time (since this file is only used for ethernet and struct eth_addr already had a defined length of 6).
2007-06-19 16:22:55 +00:00
goldsimon
ea7b0052f3
Implemented socket options SO_NO_CHECK for UDP sockets to disable UDP checksum generation on transmit.
2007-06-17 11:46:30 +00:00
goldsimon
cbf281589b
Fixed bug #20180 (TCP pcbs listening on IP_ADDR_ANY could get changed in netif_set_ipaddr if previous netif->ip_addr.addr was 0.
2007-06-16 13:32:10 +00:00
goldsimon
15e8208457
pcb_new sets conn->err if protocol is not implemented -> netconn_new_..() does not allocate a new connection for unsupported protocols.
2007-06-13 19:00:21 +00:00
fbernon
d8fe18c28e
api_lib.c: change return expression in netconn_addr and netconn_peer, because conn->err was reset to ERR_OK without any reasons (and error was lost)...
2007-06-13 18:08:49 +00:00
fbernon
9ee85fb1b6
debug.h, api_msg.c: change LWIP_ERROR to use it to check errors like invalid pointers or parameters, and let the possibility to redefined it in cc.h. Use this macro to check "conn" parameter in api_msg.c functions (some others change will be done...).
2007-06-13 18:00:54 +00:00
fbernon
bdbc96f453
opt.h, mem.h, mem.c, memp.c, pbuf.c, ip_frag.c, vj.c: Fix bug #20162 . Rename MEM_ALIGN in LWIP_MEM_ALIGN and MEM_ALIGN_SIZE in LWIP_MEM_ALIGN_SIZE to avoid some macro names collision with some OS macros.
2007-06-13 17:17:26 +00:00
goldsimon
046a270156
Added UDP lite support for sockets
2007-06-11 18:43:16 +00:00
goldsimon
2f293d53ba
UDP Lite: corrected the use of chksum_len (based on RFC3828: if it's 0, create checksum over the complete packet. On RX, if it's < 8 (and not 0), discard the packet. Also removed the duplicate 'udphdr->chksum = 0' for both UDP & UDP Lite.
2007-06-11 18:03:57 +00:00
fbernon
1d7caed340
tcp_out.c: Fix for bug #20075 : "A problem with keep-alive timer and TCP flags" where TCP flags wasn't initialized in tcp_keepalive. Reported by Srinivas Gollakota with help of Oleg Tyshev.
2007-06-11 13:59:10 +00:00
goldsimon
95f4c02381
Included switch LWIP_UDPLITE (enabled by default) to switch off UDP-Lite support if not needed (reduces udp.c code size)
2007-06-10 12:02:24 +00:00
fbernon
e01f342048
Contrib module by Dominik Spies: autoip.h, autoip.c, dhcp.h, dhcp.c, netif.h, netif.c, etharp.h, etharp.c, opt.h: AutoIP implementation available for IPv4, with new options LWIP_AUTOIP and LWIP_DHCP_AUTOIP_COOP if you want to cooperate with DHCP. Some tips to adapt (see TODO mark in the source code).
2007-06-09 16:57:04 +00:00
goldsimon
c028619cdd
Modified order of parameters for etharp_output() to match netif->output so etharp_output() can be used directly as netif->output to save one function call.
2007-06-08 22:20:05 +00:00
goldsimon
0e9cb48ea1
Changed define NETIF_INIT_SNMP(type, speed) to include the name of the struct netif to change...
2007-06-08 19:59:20 +00:00
goldsimon
945460c67e
Added define NETIF_INIT_SNMP(type, speed) to initialize per-netif snmp variables, added initialization of those to slipif and loopif.
2007-06-08 17:17:41 +00:00
goldsimon
3a607a197e
opt.h, ip_frag.c, ip_frag.h, ip.c: Added option IP_FRAG_USES_STATIC_BUF (defaulting to off for now) that can be set to 0 to send fragmented packets by passing PBUF_REFs down the stack.
2007-06-03 18:36:42 +00:00
goldsimon
974cf08e5d
udp_input(): Input pbuf was not freed if pcb had no recv function registered, p->payload was modified without modifying p->len if sending icmp_dest_unreach() (had no negative effect but was definitively wrong).
2007-06-03 11:32:03 +00:00
goldsimon
7abfe74fa4
Corrected bug #19937 : ICMP assumes p_buf has space for ethernet header. Allocating new pbuf if the input pbuf isn't big enough.
2007-06-03 10:48:23 +00:00
goldsimon
add68e0da1
Checked in patch #5914 : Moved sockopt processing into tcpip_thread.
2007-06-01 17:15:54 +00:00
fbernon
0a4130a4ff
Minor, fix files modified by last patch...
2007-05-23 19:49:55 +00:00
fbernon
a3fdc33f88
api_lib.c: Implement SO_RCVTIMEO for accept and recv on TCP connections, such present in patch #5959 .
2007-05-23 19:18:09 +00:00
fbernon
a330917ee8
api_lib.c, sockets.c: Fixed bug #5958 for netconn_listen (acceptmbox only allocated by do_listen if success) and netconn_accept errors handling. In most of api_lib functions, we replace some errors checkings like "if (conn==NULL)" by ASSERT, except for netconn_delete.
2007-05-23 18:43:30 +00:00
fbernon
0fe5dd8d43
api_lib.c: Fixed bug #5957 "Safe-thread problem inside netconn_recv" to return an error code if it's impossible to fetch a pbuf on a TCP connection (and not directly close the recvmbox).
2007-05-23 17:53:35 +00:00
fbernon
953d783a3e
api.h, api_lib.c, api_msg.c, sockets.c: group the different NETCONN_UDPxxx code in only one part...
2007-05-23 17:46:53 +00:00
fbernon
2ff620e1b5
sys.h, sys.c, api_lib.c, tcpip.c: remove sys_mbox_fetch_timeout() (was only used for LWIP_SO_RCVTIMEO option) and use sys_arch_mbox_fetch() instead of sys_mbox_fetch() in api files. Now, users SHOULD NOT use internal lwIP features like "sys_timeout" in their application threads.
2007-05-22 20:51:34 +00:00
goldsimon
0aaf69769f
Fixed bug #1895 (tcp_bind not correct) by introducing a list of bound but unconnected (and non-listening) tcp_pcbs.
2007-05-22 20:48:36 +00:00
fbernon
499f4689be
api.h, api_lib.c, api_msg.h, api_msg.c: change the struct api_msg_msg to see which parameters are used by which do_xxx function, and to avoid "misusing" parameters (patch #5938 ).
2007-05-22 09:54:00 +00:00
goldsimon
81ac03a28b
Included patch #5938 : changed raw_pcb.protocol from u16_t to u8_t since for IPv4 and IPv6, proto is only 8 bits wide. This affects the api, as there, the protocol was u16_t, too.
2007-05-22 07:31:06 +00:00
goldsimon
a4f4e6e71d
Addition to patch #5913 : decrease size of memp_memory.
...
Added option MEMP_OVERFLOW_CHECK to check for memp elements to overflow.
2007-05-18 19:48:44 +00:00
goldsimon
5c89228878
Fix bug #19729 : free pbuf if netif->input() returns != ERR_OK.
2007-05-16 19:54:54 +00:00
goldsimon
2740a81103
If a udp_pcb has a local_ip set, check if it is the same as the one of the netif used for sending to prevent sending from old addresses after a netif address gets changed (partly fixes bug #3168 ).
2007-05-16 18:55:25 +00:00
fbernon
0f8a2d6418
tcpip.c, igmp.h, igmp.c: Fixed bug " #19800 : IGMP: igmp_tick() will not work with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in tcpip_init) because we have to be sure that network interfaces are already added (mac filter is updated only in igmp_init for the moment).
2007-05-16 14:12:52 +00:00
goldsimon
fd982597fe
Removed semaphores from memp, changed sys_sem_wait calls into sys_arch_sem_wait calls to prevent timers from running while waiting for the heap. This fixes bug #19167 .
2007-05-16 11:02:07 +00:00
goldsimon
62d705903e
task #6831 : removed the option PBUF_POOL_USES_MEMP and removed the old pbuf pool code, pbuf pool now always allocates from a memp pool
2007-05-13 18:17:22 +00:00
goldsimon
a5e2e9ea03
(see task #6831 ): Included new option PBUF_POOL_USES_MEMP to use a memp pool for PBUF_POOL pbufs instead of the old pool implementation in pbuf.c to remove redundant code.
2007-05-13 16:16:03 +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
fbernon
9cf1390dc6
sockets.c, api_lib.c, api_msg.h, api_msg.c, netifapi.h, netifapi.c, tcpip.c: Include a function pointer instead of a table index in the message to reduce footprint. Disable some part of lwip_send and lwip_sendto if some options are not set (LWIP_TCP, LWIP_UDP, LWIP_RAW).
2007-05-11 08:58:23 +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
goldsimon
255d5a748f
Included patch #5920 : Create define to override C-library memcpy. 2 Defines are created: MEMCPY() for normal memcpy, SMEMCPY() for situations where some compilers might inline the copy and save a function call. Also replaced all calls to memcpy() with calls to (S)MEMCPY().
2007-05-10 05:20:05 +00:00
goldsimon
1571881f7a
If MEM_LIBC_MALLOC==1, allow the defines (e.g. mem_malloc() -> malloc()) to be overriden in case the C-library malloc implementation is not protected against concurrent access.
2007-05-08 11:00:49 +00:00
goldsimon
824ef1ff2c
Another attempt to fix bug #17922
2007-05-07 19:48:29 +00:00
goldsimon
79d9b36ece
Further update to ARP queueing: Changed pbuf_copy() implementation so that it can be reused (don't allocate the target pbuf inside pbuf_copy()).
2007-05-04 21:31:25 +00:00
goldsimon
be316e81a7
Introduced fast one-entry-cache to speed up ARP lookup when sending multiple packets to the same host.
2007-05-04 19:31:27 +00:00
goldsimon
7f232b43ff
checked in patch #5913 : in memp_malloc() we can return memp as mem to save a little RAM (next pointer of memp is not used while not in pool).
2007-05-04 15:52:11 +00:00
fbernon
5a12aeb4a1
sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fix bug #19162 "lwip_sento: a possible to corrupt remote addr/port connection state". Reduce problems "not enought memory" with netbuf (if we receive lot of datagrams). Improve lwip_sendto (only one exchange between sockets api and api_msg which run in tcpip_thread context). Add netconn_sento function. WARNING, if you directly access to "fromaddr" & "fromport" field from netbuf struct, these fields are now renamed "addr" & "port".
2007-05-04 15:18:29 +00:00
jifl
e895aa71a4
* sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
...
(patch #3574 ).
2007-05-03 19:13:27 +00:00
goldsimon
02e194b15f
fix bug #2595 : "loopif results
...
in NULL reference for incoming TCP packets". Loopif has to be configured
(using LWIP_LOOPIF_MULTITHREADING) to directly call netif->input()
(multithreading environments, e.g. netif->input() = tcpip_input()) or
putting packets on a list that is fed to the stack by calling loopif_poll()
(single-thread / NO_SYS / polling environment where e.g.
netif->input() = ip_input).
2007-04-23 20:00:29 +00:00
jifl
eacac8ee1d
* sockets.h: FD_SETSIZE needs to match number of sockets, which is
...
MEMP_NUM_NETCONN in sockets.c right now.
2007-04-17 14:50:08 +00:00
jifl
cd19d81411
* pbuf.c: Use s32_t in pbuf_realloc(), as an s16_t can't reliably hold
...
the difference between two u16_t's.
2007-04-17 14:44:41 +00:00
jifl
748ba22a19
* icmp.c: Reset IP header TTL in ICMP ECHO responses (bug #19580 ).
2007-04-12 18:55:44 +00:00
goldsimon
e54f3fdaac
3rd fix for bug #11400 (arp-queuing): More pbufs than previously thought need to be copied (everything but PBUF_ROM!). Cleaned up pbuf.c: removed functions no needed any more (by etharp).
2007-04-11 18:50:45 +00:00
jifl
e8b055b8d3
Oops, forgot final version of Changelog for last change I made.
2007-04-11 16:20:07 +00:00
jifl
0c94f22ded
* sys.h, api_lib.c: Provide new sys_mbox_tryfetch function.
...
Require ports to provide new sys_arch_mbox_tryfetch function to get
a message if one is there, otherwise return with SYS_MBOX_EMPTY.
2007-04-11 15:41:03 +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
35893e36dd
opt.h, tcpip.h, tcpip.c, netifapi.h, netifapi.c: New configuration option LWIP_NETIF_API allow to use thread-safe functions to add/remove netif in list, and to start/stop dhcp clients, using new functions from netifapi.h. Disable as default (no port change to do).
2007-04-06 10:09:24 +00:00
fbernon
5f1aac1450
api_msg.c: Fix bug #16830 : "err_tcp() posts to connection mailbox when no pend on the mailbox is active". Now, the post is only done during a connect, and do_send, do_write and do_join_leave_group don't do anything if a previous error was signaled.
2007-04-05 16:54:20 +00:00
fbernon
7fdd312cca
sockets.c: remplace ENOBUFS errors on alloc_socket by ENFILE to be more BSD compliant.
2007-04-05 16:49:33 +00:00
goldsimon
f16911f7dd
comment to the last check-in was incomplete: Introduced #define LWIP_UNUSED_ARG(x) use this for and architecture-independent form to tell the compiler you intentionally are not using this variable. Can be overriden in cc.h.
2007-04-04 19:55:42 +00:00
goldsimon
f6bdd2cae4
Introduced #define LWIP_UNUSED_ARG(x) use this for and architecture-independent form to tell the compiler you intentionally are not using this variable. Can be overriden in cc.h.
2007-04-04 19:54:22 +00:00
fbernon
26e88dc2c1
Don't set the IP_DF ("Don't fragment") flag in the IP header in IP output packets. See patch #5834 .
2007-04-03 14:08:11 +00:00
fbernon
996d5fda69
ip.c: if IP_REASSEMBLY is set to 1, don't set the IP_DF ("Don't fragment") flag in the IP header in IP output packets.
2007-03-30 13:30:42 +00:00
fbernon
f1412f5e5a
api_msg.c: add a "pcb_new" helper function to avoid redundant code, and to add missing pcb allocations checking (in do_bind, and for each raw_new). Fix style.
2007-03-30 09:42:16 +00:00
fbernon
5368a760cf
most of files: prefix all debug.h define with "LWIP_" to avoid any conflict with others environment defines (these were too "generic").
2007-03-30 08:47:04 +00:00
fbernon
913a99dd35
api.h, api_lib.c, sockets.c: netbuf_ref doesn't check its internal pbuf_alloc call result and can cause a crash. lwip_send now check netbuf_ref result.
2007-03-28 17:26:06 +00:00
goldsimon
d956a39fec
sockets.c Remove "#include <errno.h>" from sockets.c to avoid multiple
...
definition of macros (in errno.h and lwip/arch.h) if LWIP_PROVIDE_ERRNO is
defined. This is the way it should have been already (looking at
doc/sys_arch.txt)
2007-03-28 14:49:04 +00:00
kieranm
01d9bd573e
2007-03-28 Kieran Mansley
...
* opt.h Change default PBUF_POOL_BUFSIZE (again) to accomodate default MSS +
IP and TCP headers *and* physical link headers
2007-03-28 12:27:38 +00:00
fbernon
c1fe7517ec
opt.h, netif.h, dhcp.h, dhcp.c: New configuration option LWIP_NETIF_HOSTNAME allow to define a hostname in netif struct (this is just a pointer, so, you can use a hardcoded string, point on one of your's ethernetif field, or alloc a string you will free yourself). It will be used by DHCP to register a client hostname, but can also be use when you call snmp_set_sysname.
2007-03-28 09:39:12 +00:00
fbernon
cd1c96db56
netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to initialize a network interface's flag with. It tell this interface is an ethernet device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility Support for IPv4" section 4.6) when interface is "up" with netif_set_up().
2007-03-28 09:23:35 +00:00
fbernon
19338d2774
opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP init at build time if you only use PPP or SLIP. The default is enable. Note we don't have to call etharp_init in your port's initilization sequence if you use tcpip.c, because this call is done in tcpip_init function.
2007-03-26 16:13:46 +00:00
fbernon
005e5f2f72
api_lib.c (from Dmitry Potapov) : patch for netconn_write(), fixes a possible race condition which cause to send some garbage. It is not a definitive solution, but the patch does solve the problem for most cases.
2007-03-26 15:37:48 +00:00
fbernon
e54cd23ecb
stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if necessary with the new option LWIP_STATS_LARGE. If you need this option, define LWIP_STATS_LARGE to 1 in your lwipopts.h. More, unused counters are not defined in the stats structs, and not display by stats_display(). Note that some options (SYS_STATS and RAW_STATS) are defined but never used. Fix msg_in.c with the correct #if test for a stat display.
2007-03-22 16:36:45 +00:00
fbernon
544e469eeb
api_msg.h, api_msg.c: Remove obsolete API_MSG_ACCEPT and do_accept (never used).
2007-03-22 09:34:18 +00:00
fbernon
db739d16ce
api_lib.c: somes resources couldn't be freed if there was errors during netconn_new_with_proto_and_callback.
2007-03-22 09:27:04 +00:00
fbernon
5fff6e7ff8
ethernetif.c: update netif->input calls to check return value. In older ports, it's a good idea to upgrade them, even if before, there could be another problem (access to an uninitialized mailbox).
2007-03-22 09:09:27 +00:00
goldsimon
776c01e60b
fixed bug #5067 (essentialy a signed/unsigned warning fixed by casting to unsigned).
2007-03-21 21:14:06 +00:00
fbernon
3eb38d7611
api_lib.c, api_msg.c, tcpip.c: integrate sys_mbox_fetch(conn->mbox, NULL) calls from api_lib.c to tcpip.c's tcpip_apimsg(). Now, use a local variable and not a dynamic one from memp to send tcpip_msg to tcpip_thread in a synchrone call. Free tcpip_msg from tcpip_apimsg is not done in tcpip_thread. This give a faster and more reliable communication between api_lib and tcpip.
2007-03-21 16:38:58 +00:00
fbernon
766159e27e
opt.h: Add LWIP_NETIF_CALLBACK (to avoid compiler warning) and set it to 0.
2007-03-21 15:35:02 +00:00
fbernon
bb34d8cfd1
api_msg.c, igmp.c, igmp.h: Fix C++ style comments
2007-03-21 14:47:52 +00:00
kieranm
e5147d5562
* netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com).
...
Provides callback on netif up/down state change.
2007-03-21 13:24:20 +00:00
kieranm
d7ff85850c
2007-03-21 Kieran Mansley
...
* opt.h Change default PBUF_POOL_BUFSIZE to accomodate default MSS +
IP and TCP headers
2007-03-21 13:05:51 +00:00
kieranm
7294cb080b
* Fix all uses of pbuf_header to check the return value. In some
...
cases just assert if it fails as I'm not sure how to fix them, but
this is no worse than before when they would carry on regardless
of the failure.
2007-03-21 12:55:00 +00:00
kieranm
b422864d5d
sockets.c, igmp.c, igmp.h, memp.h: Fix C++ style comments and
...
comment out missing header include in icmp.c
2007-03-21 12:50:04 +00:00
fbernon
eab3667b61
memp.h, stats.c: Fix stats_display function where memp_names table wasn't synchronized with memp.h
2007-03-20 18:12:06 +00:00
fbernon
713e89cdb2
tcpip.c: Initialize tcpip's mbox, and verify if initialized in tcpip_input, tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with network interfaces. Also fix a compiler warning.
2007-03-20 18:01:40 +00:00
kieranm
b290f0442d
udp.c: Only try and use pbuf_header() to make space for headers if
...
not a ROM or REF pbuf.
2007-03-20 16:58:08 +00:00
fbernon
b035a6196a
Add return types to tcpip_apimsg() and api_msg_post() to check ERR_MEM problems (api_lib.c can be change now).
2007-03-19 20:35:32 +00:00
fbernon
e4cd00b5ea
Remove unimplemented "memp_realloc" function from memp.h.
2007-03-19 20:23:58 +00:00
goldsimon
3bb13829fe
checked in patch #5796 : pbuf_alloc: len field claculation caused memory corruption.
2007-03-11 20:07:37 +00:00
fbernon
a24a170b84
New configuration option LWIP_IGMP to enable IGMP processing. Based on only one filter per all network interfaces. Declare a new function in netif to enable to control the MAC filter (to reduce lwIP traffic processing).
...
Mace Gael for the upper layers, Steve Reynolds for lower ones...
2007-03-11 19:16:38 +00:00
goldsimon
bc4b3764fc
Fixed bug #19251 (missing `const' qualifier in socket functions), to get more compatible to standard POSIX sockets.
2007-03-11 17:57:13 +00:00
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
goldsimon
41a84ef1d3
Fixed bug #11400-2: New etharp queueing introduced bug: memp_memory was allocated too small.
2007-03-09 07:15:04 +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
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
goldsimon
5eabd4591a
SNMP UDP ports can be configured at compile time
2007-03-08 10:32:29 +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
goldsimon
874bfe19d2
Reduce code size: don't include code in those files if IP_FRAG == 0 and IP_REASSEMBLY == 0
2007-03-06 15:27:58 +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
ddf0982d0f
opt.h, sockets.h: add new configuration options (LWIP_POSIX_SOCKETS_IO_NAMES, ETHARP_TRUST_IP_MAC, review SO_REUSE).
...
Also include directly tcp.h in sockets.h to improve application independancy from ip stack (avoid to include directly in application the "unknown" tcp.h if you need options like TCP_NODELAY and TCP_KEEPALIVE in application.
2007-03-05 14:43:11 +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
9da7afb345
Fixed buf #19168 based on patch by Dmitry Potapov
2007-03-04 12:45:58 +00:00
goldsimon
1f544e087b
Fix BUG#11400 - don't corrupt existing pbuf chain when enqueuing multiple pbufs to a pending ARP request
2007-03-04 12:12:42 +00:00
fbernon
e1b6a4cb21
udp.c: remove obsolete line "static struct udp_pcb *pcb_cache = NULL;"
...
Its is static, and never used in udp.c except udp_init().
2007-03-03 17:00:44 +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
fbernon
e075581d76
no message
2007-03-02 19:35:15 +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
5ace5976a1
* pbuf.c: Fix BUG#17645 - ensure pbuf payload pointer is not moved
...
outside the region of the pbuf by pbuf_header()
2007-02-28 13:45:35 +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
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
likewise
3551b2a2a1
Release 1.2.0.
2006-12-05 10:09:17 +00:00
christiaans
a91374a916
Added MEM_LIBC_MALLOC option as workaround for failing mem_malloc().
2006-12-01 15:38:56 +00:00
christiaans
9a68f74857
Fixed false triggers of request_timeout.
2006-11-30 16:25:43 +00:00
christiaans
5a6b26d69e
In netif_add() fixed clearing of ip_addr, netmask, gw and flags.
2006-11-28 13:12:15 +00:00
christiaans
b4f1deaa46
Accepted patch #5493 IP frag/reass config item tweak.
2006-11-27 14:48:21 +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
8a31c6f807
Only mentioning SNMP development additions instead of changes, since we're in pre-alpha.
2006-10-06 10:44:24 +00:00
christiaans
7d16087789
Fixed bug #17200 , added check for broadcast destinations for PCBs bound to a unicast address.
2006-08-17 09:40:15 +00:00
christiaans
469012b544
Added etharp_find_addr(), finds eth/IP address pair by interface ptr and IP address.
2006-08-08 15:10:42 +00:00
christiaans
d8922d0410
Added minimalistic SNMP GET functionality.
2006-07-14 12:54:38 +00:00
christiaans
c89b085e5b
Mentioned some recent cold case fixes.
2006-06-27 10:39:06 +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
likewise
ef0575a26d
Remained indictator where new changes should go.
2006-04-07 22:31:09 +00:00
christiaans
94abf9d935
Added LWIP_PLATFORM_BYTESWAP optimalisation flag and macro glue.
2006-03-29 10:15:43 +00:00
likewise
fef5c4c9a0
Added upcoming 1.1.1 release to Changelog.
2006-03-15 11:20:46 +00:00
christiaans
61dc2e7dd5
Added pbuf_alloc() return value checks in ip_frag().
2006-03-03 11:25:36 +00:00
likewise
9e7418090d
pbuf alignment fix.
2006-03-01 16:57:43 +00:00
christiaans
818a726679
History update and listing PPP problems as todo.
2005-12-20 11:52:44 +00:00
likewise
f8663a7129
Remove PCBs which stay in LAST_ACK state too long.
2005-12-20 11:03:18 +00:00
likewise
02b575e9e4
Added Curt McDowell's platform-independent optimized checksum routine.
2005-12-14 22:51:35 +00:00
likewise
07c0bc288a
Mention of multiple pbuf fix in slipif and unaligned access fix in checksumming.
2005-07-17 15:33:16 +00:00
likewise
bb76e69567
Mentioned unaligned access fix.
2005-02-04 13:45:55 +00:00
likewise
ac5c6695c1
4 February 2004, Leon Woestenberg <leon.woestenberg@gmx.net>
...
tcp_out.c: queue was not initialized to NULL, but was referenced in memerr cleanup code.
2005-02-04 13:31:29 +00:00
likewise
2cf4287197
Mention of missing semicolon, and pcb->recv() called even when NULL.
2005-01-04 12:22:44 +00:00
likewise
1b3682cfa9
Updated CHANGELOG.
2004-12-30 01:28:16 +00:00
likewise
f1eca32536
Mentioned ARP race fix.
2004-11-28 18:06:47 +00:00
likewise
1a0c497007
Mentioned Kieran's and my changes - Leon.
2004-11-25 13:33:57 +00:00
likewise
eb99d21022
Mentioned adapted TCP behaviour; send ACK even if one was pending, iff rcv_wnd is above threshold.
2004-10-16 15:12:56 +00:00
likewise
793cbcdff8
Mentioned adapted TCP behaviour; send ACK even if one was pending, iff rcv_wnd is above threshold.
2004-10-16 15:07:26 +00:00
likewise
79842d4fdd
Mentioned TCP retransmit time-out changes contributed by Sam Jansen, committed Kieran Mansley.
2004-10-13 21:40:51 +00:00
softins
fae709d9ea
Added my July and August updates.
2004-08-20 16:56:20 +00:00
likewise
98ba558fa5
Mentioned 1.0.0.
2004-07-29 11:28:27 +00:00
likewise
c222d8b672
Updated with latest changes.
2004-07-04 23:52:40 +00:00
likewise
d31830225c
Updated list of fixes/changes to the code.
2004-04-29 21:56:06 +00:00
likewise
7dc51270ee
Documented latest fixes in HEAD.
2004-04-23 16:49:35 +00:00
likewise
1b96391cdf
Merged from DEVEL to main. Two TCP fixes and two NULL reference fixes.
2004-01-20 13:23:52 +00:00
uid67528
eed8ea5bc1
Merged from DEVEL. etharp prepared for queueing feature. DHCP fix.
2003-12-28 02:38:51 +00:00
likewise
7d58c0c2be
Prepared Changelog for upcoming release 0.6.5. Fixed missing 0.6.4 number in history.
2003-11-14 16:20:47 +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
leonwoestenberg
45756246b9
Merged from DEVEL.
2003-06-23 18:06:26 +00:00
likewise
1eaf425627
Mentioned pbuf_alloc() fixes.
2003-06-04 19:43:29 +00:00
jani
4c7290fed0
Mention PPP in changelog
2003-05-28 06:21:04 +00:00
likewise
03bc7c868b
Major stylo search/replace for "One space between keyword and opening bracket."
2003-05-01 13:24:01 +00:00
likewise
ea5cd98e83
Mentioned changes to netif that imply changes for network drivers.
2003-04-25 13:23:10 +00:00
likewise
e147801ed8
Mention DHCP fix.
2003-04-15 14:43:36 +00:00
davidhaas
3defc437c6
Got rid of pbuf_pool_alloc_cache and pbuf_pool_free_cache. Also got rid of
...
pbuf_refresh(). This has sped up pbuf pool operations.
2003-04-11 14:39:15 +00:00
likewise
0eb3d92782
Updated changelog to reflect some recent changes.
2003-04-10 08:51:58 +00:00
likewise
be7275c238
First attempt to track/explain changes that happened in CVS tree.
2003-04-09 15:22:11 +00:00
likewise
950f2d0f2f
Re-added without vendor tag.
2002-10-20 15:13:14 +00:00
likewise
89bc334515
Removed to get rid of vendor tag.
2002-10-20 15:11:10 +00:00
likewise
129c4d20c7
Updated texts to reflect move to http://savannah.nongnu.org/projects/lwip/
2002-10-19 16:07:55 +00:00
likewise
f06e955072
Initial revision
2002-10-19 12:59:30 +00:00