Commit Graph

558 Commits

Author SHA1 Message Date
goldsimon
cff3e0cad2 bug #26397: Added SLIP polling support (uses sio_tryread) 2009-08-26 21:06:18 +00:00
stoklund
b55cfbc342 Add patch #6725 to CHANGELOG 2009-08-26 07:18:50 +00:00
goldsimon
f2f20cf133 fixed invalid dependency to etharp_query if DHCP_DOES_ARP_CHECK==0 2009-08-25 17:49:47 +00:00
goldsimon
2c618705f0 task #9033: Support IEEE 802.1q tagged frame (VLAN), New configuration options ETHARP_SUPPORT_VLAN and ETHARP_VLAN_CHECK. 2009-08-25 15:24:49 +00:00
goldsimon
bc10ad2356 patch #6900: added define ip_ntoa(struct ip_addr*) 2009-08-25 14:53:25 +00:00
goldsimon
e7d5739ce7 Fixed bug #27078: Possible memory leak in pppInit() 2009-08-23 17:40:29 +00:00
goldsimon
8bf57c0e14 Fixed bug #26657: DNS, if host name is "localhost", result is error. 2009-08-23 13:51:12 +00:00
goldsimon
dea7255fc5 Fixed bug #26649: TCP fails when TCP_MSS > TCP_SND_BUF, Fixed wrong parenthesis, added check in init.c 2009-08-23 13:03:20 +00:00
goldsimon
ce3082976c Fixed bug #27266: wait-state debug message in pppMain occurs every ms 2009-08-23 12:37:36 +00:00
goldsimon
362a295e06 Fixed bug #27252: Address pointer invalid after freeing pbuf in UDP receive callback 2009-08-23 11:32:38 +00:00
goldsimon
0e91e2adf2 bug #27267: Added include to string.h where needed 2009-08-23 11:24:51 +00:00
goldsimon
4d49d952b6 patch #6843: tcp.h macro optimization patch (for little endian) 2009-08-23 11:13:19 +00:00
goldsimon
ae7a7a0abf Added function tcp_debug_state_str() to convert a tcp state to a human-readable string. 2009-08-23 10:57:37 +00:00
kieranm
0b75917121 BUG27209: handle trimming of segments when out of window or out of
order properly
2009-08-12 08:34:48 +00:00
kieranm
fa2dbc2b1b BUG27199: use snd_wl2 instead of snd_wl1 2009-08-12 08:32:14 +00:00
goldsimon
7feb116bae Fixed bug #27105: "realloc() cannot replace mem_realloc()" by making mem_realloc static doing nothing when MEM_LIBC_MALLOC==1 2009-07-28 17:18:46 +00:00
kieranm
a6e316a92d Add missing #include directives 2009-07-27 15:20:33 +00:00
kieranm
1eee0be951 BUG23240 use signed counters for recv_avail and don't increment
counters until message successfully sent to mbox
2009-07-09 09:35:07 +00:00
kieranm
fb555a0633 Update changelog for recent commits 2009-06-25 12:58:52 +00:00
goldsimon
30acd1662d fixed bug #26507: "Gratuitous ARP depends on arp_table / uses etharp_query" by adding etharp_gratuitous() 2009-05-12 20:13:45 +00:00
goldsimon
078e2f60d6 bug #26487: Added ip_output_if_opt that can add IP options to the IP header (used by igmp_ip_output_if) 2009-05-12 18:00:47 +00:00
goldsimon
22d6558f13 task #7013: Added option LWIP_NETIF_TX_SINGLE_PBUF to try to create transmit packets from only one pbuf to help MACs that don't support scatter-gather DMA. 2009-05-10 17:07:25 +00:00
goldsimon
105d72a3c2 Shrinked ICMP code, added option to NOT check icoming ECHO pbuf for size (just use it): LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN 2009-05-09 08:36:36 +00:00
goldsimon
c752e5731c Worked on dns: local host-list can be put into FLASH (by defining storage target/linker section), external function can be defined for lookup, combined dns_local_removehostname/removehostaddr to dns_local_removehost 2009-05-07 15:27:02 +00:00
goldsimon
95f6dc7011 On little endian architectures, use LWIP_PLATFORM_HTONS (if defined) for SWAP_BYTES_IN_WORD to speed up checksumming. 2009-05-06 17:35:50 +00:00
goldsimon
14dba4ae2b Added ip_current_netif() & ip_current_header() to receive extended info about the currently received packet. 2009-05-05 17:50:39 +00:00
goldsimon
99d82c4980 Fixed bug #26405: Prematurely released semaphore causes lwip_select() to crash 2009-05-05 17:20:45 +00:00
goldsimon
fb46e0f192 snmp was not initialized in lwip_init() 2009-05-04 19:22:26 +00:00
fbernon
b055128ec4 CHANGELOG: minor, typo 2009-05-04 08:50:24 +00:00
fbernon
e29f94a980 dhcp.c, netbios.c: Changes if IF_SOF_BROADCAST is enabled. 2009-05-04 08:40:44 +00:00
goldsimon
24342eaab0 Fixed bug #26349: Nagle algorithm doesn't send although segment is full (and unsent->next == NULL) 2009-05-03 14:17:33 +00:00
goldsimon
152d22d4f9 fixed tcpip_untimeout (does not need the time, broken after 1.3.0 in CVS only) - fixes compilation of ppp_oe.c 2009-05-02 16:12:35 +00:00
goldsimon
41eecb67d2 fixed bug #25636: SNMPSET value is ignored for integer fields 2009-05-02 15:45:53 +00:00
goldsimon
9317105c37 Addition to patch #6721, bug #25575: call autoip_stop in dhcp_stop if in coop-mode 2009-05-02 15:40:39 +00:00
goldsimon
23d7f5425d Fixed bug #21680: PPP upap_rauthnak() drops legal NAK packets 2009-05-01 12:10:34 +00:00
goldsimon
217f279fdb Fixed bug #24228: Memory corruption with PPP and DHCP 2009-05-01 11:42:36 +00:00
fbernon
d4ecb23015 raw.c, udp.c, init.c, opt.h, ip.h, sockets.h: bug #26309: Implement the SO(F)_BROADCAST filter for all API layers. Avoid the unindented reception of broadcast packets even when this option wasn't set. Port maintainers which want to enable this filter have to set IP_SOF_BROADCAST=1 in opt.h. If you want this option also filter broadcast on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1 in opt.h. 2009-04-29 12:42:43 +00:00
goldsimon
3b5993e6ee Integrated patch #6721: new option to adjust the time when DHCP gives over to AUTOIP and some improvements in DHCP/AUTOIP cooperation 2009-04-28 19:29:46 +00:00
goldsimon
4b8255a588 Bug #25608: Made SYS_LIGHTWEIGHT_PROT and sys_now() work with NO_SYS=1 2009-04-27 20:09:52 +00:00
goldsimon
261dfdf010 fixed bug #24212: "Deadlocked tcp_retransmit due to exceeded pcb->cwnd": Fixed by sorting the unsent and unacked queues (segments are inserted at the right place in tcp_output and tcp_rexmit) 2009-04-26 12:27:11 +00:00
goldsimon
cbfacb7ed9 bug #26213 "Problem with memory allocation when debugging": memp_sizes contained the wrong sizes (including sanity regions); memp pools for MEM_USE_POOLS were too small; Added option MEM_USE_POOLS_TRY_BIGGER_POOL to try the next bigger malloc pool if one is empty (only usable with MEM_USE_POOLS). 2009-04-25 17:42:27 +00:00
fbernon
4eda29abf9 inet.c: patch #6765: Fix a small problem with the last changes (incorrect behavior, with ip address string not ended by a '\0', a space or a end of line) 2009-04-24 12:14:54 +00:00
goldsimon
029b786c77 Fixed bug #26069: Corrected documentation: if tcp_connect fails, pcb->err is called, not pcb->connected (with an error code). 2009-04-21 19:15:16 +00:00
goldsimon
51e02176da task #7507, patch #6786: DNS supports static hosts table. New configuration options DNS_LOCAL_HOSTLIST and DNS_LOCAL_HOSTLIST_IS_DYNAMIC. 2009-04-21 18:35:18 +00:00
goldsimon
ed65d9cd75 Fixed bug #26236: "TCP options (timestamp) don't work with no-copy-tcpwrite": deallocate option data, only concat segments with same flags 2009-04-19 12:42:48 +00:00
goldsimon
542b8fffb1 Fixed bug #25094: "Zero-length pbuf" (options are now allocated in the header pbuf, not the data pbuf); added function comments; "inline" is not supported by ANSI C (tcp_build_timetamp_option) 2009-04-19 12:31:16 +00:00
goldsimon
9d5bf57dd9 fixed bug #25695: Segmentation fault in do_writemore() 2009-04-18 17:48:41 +00:00
goldsimon
422ba5bcec tried to fix bug #23559: lwip_recvfrom problem with tcp 2009-04-15 21:13:55 +00:00
goldsimon
620b3e6739 task #9192: mem_free of dhcp->options_in and dhcp->msg_in 2009-04-15 19:53:59 +00:00
goldsimon
580f334274 patch #6808: Add a utility function ip_hinted_output() (for smaller code mainly) 2009-04-15 19:32:01 +00:00
goldsimon
4f52183a39 patch #6765: Supporting new line characters in inet_aton() 2009-04-15 19:06:39 +00:00
goldsimon
a55f354687 patch #6763: Global DHCP XID can be redefined to something more unique 2009-04-15 18:48:10 +00:00
goldsimon
9630c9136b patch #6764: DHCP rebind and renew did not send hostnam option; Converted constant OPTION_MAX_MSG_SIZE to netif->mtu, check if netif->mtu is big enough in dhcp_start 2009-04-15 18:35:04 +00:00
goldsimon
dbd6d7ec8d bug #26027: netbuf_chain resulted in pbuf memory leak 2009-04-15 14:57:32 +00:00
goldsimon
b3a5d6df0d bug #25763: Corrected 4 occurrences of SMEMCPY to MEMCPY; corrected indentation 2009-04-15 14:48:56 +00:00
goldsimon
3587e8481d bug #26121: set_errno can be overridden 2009-04-15 14:33:05 +00:00
kieranm
4f8f6ba205 Patch#6774 TCP_QUEUE_OOSEQ breaks compilation when LWIP_TCP==0 2009-04-09 15:16:26 +00:00
kieranm
f81ed216db Patch#6802 Add do-while-clauses to those function like macros in tcp.h 2009-04-09 15:09:22 +00:00
kieranm
f1a9f7ea70 BUG20515: rework way TCP window updates are calculated and sent 2009-03-31 14:23:40 +00:00
kieranm
4b14621208 TASK9218: add support for TCP timestamp options 2009-03-31 14:13:32 +00:00
kieranm
baf30f5eae BUG20779: cope with SYN packets received during established states,
and retransmission of initial SYN.
2009-03-31 10:55:31 +00:00
kieranm
e7a2ab5de9 BUG26010: set push bit correctly when tcp segments are merged 2009-03-31 10:53:11 +00:00
kieranm
fd41c5de2d Correct change to probe window setting 2009-03-27 11:04:04 +00:00
kieranm
efac109803 BUG25622: handle return code of tcp_enqueue in tcp_listen_input() 2009-03-26 14:31:02 +00:00
kieranm
84505d4cc8 BUG25629: set TCP_ACK flags on keepalive and zero window probes 2009-03-26 14:25:46 +00:00
goldsimon
b6e18d9c6f cc.h: Added printf formatter for size_t: SZT_F 2009-02-19 19:29:28 +00:00
goldsimon
96b788bea7 patch #6528: the buffer used for IP_FRAG_USES_STATIC_BUF could be too small depending on MEM_ALIGNMENT 2009-02-18 16:54:02 +00:00
goldsimon
e001a021d5 patch #6539: (configurable) response to broadcast- and multicast pings 2009-02-16 20:24:29 +00:00
goldsimon
14cb4eb735 fixed arguments of socket functions to match the standard; converted size argument of netconn_write to 'size_t' for that; fixed some warnings 2009-02-16 19:33:51 +00:00
goldsimon
d976c8e85f fixed bug #24440: TCP connection close problem on 64-bit host by moving accept callback function pointer to TCP_PCB_COMMON 2009-02-16 16:50:58 +00:00
goldsimon
466f4e699c Added LWIP_VERSION to get the current version of the stack (implements task #9032: Provide means to get Version of Stack and submodules) 2009-02-12 21:00:11 +00:00
goldsimon
bf09400c4c fixed bug #25345 (DHCPDECLINE is sent with "Maximum message size" option) 2009-02-12 16:16:25 +00:00
goldsimon
c4509e700d added MEMP_MEM_MALLOC to use mem_malloc/mem_free instead of the pool allocator (can save code size with MEM_LIBC_MALLOC if libc-malloc is otherwise used) 2009-02-11 20:43:41 +00:00
goldsimon
6472e3b35e fixed bug #24480 (releasing old udp_pdb and pbuf in dhcp_start) 2009-02-11 20:27:00 +00:00
goldsimon
8c7705bbf9 added configurable default valud for netconn->recv_bufsize: RECV_BUFSIZE_DEFAULT (fixes bug #23726: pbuf pool exhaustion on slow recv()) 2009-02-11 19:07:22 +00:00
goldsimon
10c3ce08af fixed bug #25467: Listen backlog is not reset on timeout in SYN_RCVD: Accepts_pending is decrease on a corresponding listen pcb when a connection in state SYN_RCVD is close. 2009-02-10 20:29:38 +00:00
jifl
878532a30d * ipv4/inet_chksum.c, ipv4/lwip/inet_chksum.h: inet_chksum_pseudo_partial()
is only used by UDPLITE at present, so conditionalise it.
2009-01-28 23:58:15 +00:00
jifl
102d69004a * pbuf.c: reclaim pbufs from TCP out-of-sequence segments if we run
out of pool pbufs.
2009-01-28 05:43:35 +00:00
goldsimon
9f96f09652 Another fix for bug #6683 (and a typo in changelog) 2008-12-19 18:16:50 +00:00
goldsimon
aa568727d1 patch #6699: fixed some warnings on platform where sizeof(int) == 2 2008-12-19 18:08:29 +00:00
fbernon
411cb39eb4 sockets.c: fixed bug #25051: lwip_recvfrom problem with udp: fromaddr and port uses deleted netbuf. 2008-12-10 21:36:44 +00:00
goldsimon
491b73d5f2 Checked in (slightly modified) patch #6683: Customizable AUTOIP "seed" address. This should reduce AUTOIP conflicts if LWIP_AUTOIP_CREATE_SEED_ADDR is overridden. 2008-12-03 15:13:21 +00:00
goldsimon
299e2a7077 fixed bug ##24596: Vulnerability on faulty TCP options length in tcp_parseopt 2008-10-18 15:24:06 +00:00
goldsimon
13a139eef7 fixed bug #24517: IP reassembly crashes on unaligned IP headers by packing the struct ip_reass_helper. 2008-10-15 18:20:23 +00:00
jifl
06df1647e1 * etharp.c (etharp_arp_input): Fix type aliasing problem copying ip address. 2008-10-03 14:47:33 +00:00
jifl
1d2804d6a2 * sockets.c (lwip_accept): Return EWOULDBLOCK if would block on non-blocking
socket.
2008-10-02 13:59:18 +00:00
jifl
ba98bcdc60 * dns.c: Hard-code structure sizes, to avoid issues on some compilers where
padding is included.
2008-10-02 13:53:16 +00:00
jifl
0d7dccba5e * sockets.c (lwip_accept): check addr isn't NULL. If it's valid, do an
assertion check that addrlen isn't NULL.
2008-09-30 14:51:27 +00:00
jifl
c231e95cce * tcp.c: Fix bug #24227, wrong error message in tcp_bind. 2008-09-30 13:50:39 +00:00
goldsimon
ba636e19a2 fixed bug #24132: Cross-dependency between ip_addr.h and inet.h -> moved declaration of struct in_addr from ip_addr.h to inet.h 2008-08-26 19:47:05 +00:00
goldsimon
99db244124 fixed bug #23847: do_close_internal references freed memory 2008-07-14 20:12:36 +00:00
fbernon
8367feafa9 stats.h: Fix some build bugs introduced with patch #6483 (missing some parameters in macros, mainly if MEM_STATS=0 and MEMP_STATS=0). 2008-07-08 09:15:56 +00:00
goldsimon
13d8ae859d fixed bug #21433: Calling mem_free/pbuf_free from interrupt context isn't safe: LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT allows mem_free to run between mem_malloc iterations. Added illegal counter for mem stats. 2008-06-30 18:16:51 +00:00
goldsimon
779938ea68 patch #6483: stats module improvement: Added defines to display each module's statistic individually, added stats defines for MEM, MEMP and SYS modules, removed (unused) rexmit counter. 2008-06-27 18:37:53 +00:00
jifl
139944a3ac * tcp_in.c: Fix for bug #23693 as suggested by Art R. Ensure cseg is unused
if tcp_seg_copy fails.
2008-06-24 15:46:38 +00:00
goldsimon
94cd14e90d patch #6459: Made err_t overridable to use a more efficient type (define LWIP_ERR_T in cc.h) 2008-06-17 20:27:31 +00:00
goldsimon
521d439a07 Added a configuration option for slipif for symmetry to loopif (patch #6480) 2008-06-17 20:14:05 +00:00
goldsimon
ef3666ef26 Checked in some ideas of patch #6460 (loop optimizations) and created defines for swapping bytes and folding u32 to u16. 2008-06-17 20:06:25 +00:00
goldsimon
eba83ab740 Changed loopback code (less difference between NO_SYS = 0 / 1), added setting LWIP_LOOPBACK_MAX_PBUFS to limit loopback-queued pbufs 2008-06-17 19:39:22 +00:00
goldsimon
a8141c53a8 Got the date & place of the newest feature wrong ;-) 2008-06-12 20:21:40 +00:00
goldsimon
88ff8c83e9 Checked in slightly modified version of patch # 6370: Moved loopif code to netif.c so that loopback traffic is supported on all netifs (all local IPs). 2008-06-12 20:10:08 +00:00
kieranm
24e0b25215 Remove redundant "if" statement, and use real rcv_wnd
rather than rcv_ann_wnd when deciding if packets are in-window.
Contributed by <arasmussen@consultant.datasys.swri.edu>
2008-05-30 12:21:29 +00:00
kieranm
7bc881ccc5 Fix BUG#23254. Change macro definition of mem_* to allow
passing as function pointers when MEM_LIBC_MALLOC is defined.
2008-05-30 11:37:15 +00:00
jifl
a3bc6cd666 * err.h, err.c, sockets.c: Fix bug #23119: Reorder timeout error code to
stop it being treated as a fatal error.
2008-05-09 12:14:23 +00:00
goldsimon
9ccd31a12e fixed bug #22804: dhcp_stop doesn't clear NETIF_FLAG_DHCP (flag now cleared) 2008-04-15 17:24:54 +00:00
goldsimon
05587f5da9 Changed the pbuf_free/mem_free callback functions a little: created extra functions for that 2008-03-28 07:56:47 +00:00
goldsimon
43dd38df0a fixed bug #21433 (Calling mem_free/pbuf_free from interrupt context isn't safe): set LWIP_USE_HEAP_FROM_INTERRUPT to 1 in lwipopts.h or use tcpip_callback_nonblocking(pbuf_free_int, p)/ tcpip_callback_nonblocking(mem_free, m) to free pbufs or heap memory from interrupt context 2008-03-27 19:29:35 +00:00
goldsimon
aee9c4c8e6 fixed bug #22249: division by zero could occur if a remote host sent a zero mss as TCP option. 2008-03-26 11:57:12 +00:00
kieranm
bcb4afa886 Update CHANGELOG for 1.3.0 2008-03-23 13:49:39 +00:00
fbernon
7fa9010f35 igmp.h, igmp.c: Fix bug #22613 "IGMP iphdr problem" (could have some problems to fill the IP header on some targets, use now the ip.h macros to do it). 2008-03-17 13:40:00 +00:00
fbernon
e07d71f5e8 sockets.c: Fix bug #22435 "lwip_recvfrom with TCP break;". Using (lwip_)recvfrom with valid "from" and "fromlen" parameters, on a TCP connection caused a crash. Note that using (lwip_)recvfrom like this is a bit slow and that using (lwip)getpeername is the good lwip way to do it (so, using recv is faster on tcp sockets). 2008-03-13 20:03:57 +00:00
fbernon
552106e2a4 api_msg.c: Fix bug #22530 "api_msg.c's recv_raw() does not consume data". 2008-03-12 10:55:54 +00:00
jifl
a48370d5e9 * inet_chksum.c: Allow choice of one of the sample algorithms to be
made from lwipopts.h. Fix comment on how to override LWIP_CHKSUM.
2008-03-10 16:12:31 +00:00
jifl
f067d34392 * pbuf.c, ppp.c: Fix warnings on some systems with mem_malloc. 2008-03-04 16:37:46 +00:00
jifl
30d4c243ec * mem.c, stats.c, mem.h: apply patch #6414 to avoid compiler errors
and/or warnings on some systems where mem_size_t and size_t differ.
2008-03-04 16:31:31 +00:00
kieranm
42344ce20c 2008-03-04 Kieran Mansley (contributions by others)
* Numerous small compiler error/warning fixes from contributions to
    mailing list after 1.3.0 release candidate made.
2008-03-04 13:41:23 +00:00
fbernon
e937521014 dns.c: Fix bug #22108 "DNS problem" caused by unaligned structures. 2008-01-25 13:12:12 +00:00
fbernon
f02c39a402 tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names. 2008-01-22 21:15:14 +00:00
fbernon
8d0f689cb5 Minor changes: typo in doc files. 2008-01-21 17:00:07 +00:00
kieranm
6f00cbb6ef 2008-01-15 Kieran Mansley
* tcp_out.c: BUG20511.  Modify persist timer to start when we are
    prevented from sending by a small send window, not just a zero
    send window.
2008-01-15 13:00:51 +00:00
fbernon
7518acf634 rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675 "Enable to refuse data on a TCP_EVENT_RECV call". Important, behavior changes for the tcp_recv callback (see rawapi.txt). 2008-01-14 21:07:08 +00:00
fbernon
52e6922e5a ip.c: Integrate patch #6369" ip_input : checking before realloc". 2008-01-14 20:53:23 +00:00
fbernon
55bcc20deb tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::sem per netconn::op_completed like suggested for the task #7490 "Add return value to sys_mbox_post". 2008-01-12 11:52:21 +00:00
fbernon
9906e4c984 api_msg.c, opt.h: replace DEFAULT_RECVMBOX_SIZE per DEFAULT_TCP_RECVMBOX_SIZE, DEFAULT_UDP_RECVMBOX_SIZE and DEFAULT_RAW_RECVMBOX_SIZE (to optimize queues sizes), like suggested for the task #7490 "Add return value to sys_mbox_post". 2008-01-11 23:50:10 +00:00
fbernon
4e40fee1db tcpip.h, tcpip.c: add tcpip_callback_with_block function for the task #7490 "Add return value to sys_mbox_post". tcpip_callback is always defined as "blocking" ("block" parameter = 1). 2008-01-10 21:47:52 +00:00
fbernon
bceff76c70 tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task #7490 "Add return value to sys_mbox_post". 2008-01-10 21:34:25 +00:00
jifl
b333b7c9dc * opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid
conflict with Linux system headers.
2008-01-09 10:05:23 +00:00
jifl
bf924118de * dhcp.c: fix bug #19927: "DHCP NACK problem" by clearing any existing set IP
address entirely on receiving a DHCPNAK, and restarting discovery.
2008-01-06 21:09:11 +00:00
fbernon
5941b3c86e sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h, opt.h: Introduce changes for task #7490 "Add return value to sys_mbox_post" with some modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which indicate the number of pointers query by the mailbox. There is three defines in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the netconn::acceptmbox. Port maintainers, you can decide to just add this new parameter in your implementation, but to ignore it to keep the previous behavior. The new sys_mbox_trypost function return a value to know if the mailbox is full or if the message is posted. Take a look to sys_arch.txt for more details. This new function is used in tcpip_input (so, can be called in an interrupt context since the function is not blocking), and in recv_udp and recv_raw. 2008-01-05 21:10:32 +00:00
fbernon
32005617b9 rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add documentation in the rawapi.txt file. 2008-01-04 22:18:27 +00:00
kieranm
99afb15ced Add persist timer 2007-12-31 13:34:47 +00:00
fbernon
22e2540eb6 autoip.c, etharp.c: ip_addr.h: Integrate patch #6348: "Broadcast ARP packets in autoip". The change in etharp_raw could be removed, since all calls to etharp_raw use ethbroadcast for the "ethdst_addr" parameter. But it could be wrong in the future. 2007-12-31 13:22:03 +00:00
fbernon
8d39b1a152 ip.c: Fix bug #21846 "LwIP doesn't appear to perform any IP Source Address Filtering" reported by Tom Evans. 2007-12-30 01:09:11 +00:00
goldsimon
1ed34774c8 tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c, sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API applications have to call 'tcp_accepted(pcb)' in their accept callback to keep accepting new connections. 2007-12-21 16:47:56 +00:00
goldsimon
48e62e25e9 sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698: "netconn->recv_avail is not protected" by using new macros for interlocked access to modify/test netconn->recv_avail. 2007-12-21 14:59:10 +00:00
kieranm
add4874801 2007-12-20 Kieran Mansley (based on patch from Oleg Tyshev)
* tcp_in.c: fix bug# 21535 (nrtx not reset correctly in SYN_SENT stat)e
2007-12-20 14:58:43 +00:00
kieranm
8cc32bc29c 2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
* tcp.c, tcp_in.c, tcp_out.c, tcp.h: fix bug #20199 (better handling
    of silly window avoidance and prevent lwIP from shrinking the window)
2007-12-20 14:51:35 +00:00
fbernon
2b54da5070 api_msg.c, err.h, err.c, sockets.c, dns.c, dns.h: replace "enum dns_result" by err_t type. Add a new err_t code "ERR_INPROGRESS". 2007-12-13 23:06:49 +00:00
fbernon
de11e7fd75 dns.h, dns.c, opt.h: move DNS options to the "right" place. Most visibles are the ones which have ram usage. 2007-12-12 17:56:03 +00:00
fbernon
ac10470643 netdb.c: add a LWIP_DNS_API_HOSTENT_STORAGE option to decide to use a static set of variables (=0) or a local one (=1). In this last case, your port should provide a function "struct hostent* sys_thread_hostent( struct hostent* h)" which have to do a copy of "h" and return a pointer ont the "per-thread" copy. 2007-12-05 23:00:02 +00:00
goldsimon
8d3d08e814 fix bug #21699 (segment leak in ooseq): add assert that all segment lists are empty in tcp_pcb_remove before setting pcb to CLOSED state; don't directly set CLOSED state from LAST_ACK in tcp_process 2007-12-04 20:41:12 +00:00
goldsimon
f3f7bd00e5 ip_input: check if a packet is for inp first before checking all other netifs on netif_list (speeds up packet receiving in most cases) 2007-12-03 17:55:01 +00:00
goldsimon
47d8d69b81 fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET. If including <sys/time.h> for system-struct timeval, LWIP_TIMEVAL_PRIVATE now has to be set to 0 in lwipopts.h 2007-12-02 15:24:02 +00:00
goldsimon
113a52d091 fix bug #21656 (recvmbox problem in netconn API): always allocate a recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen netconn, this recvmbox is later freed and a new mbox is allocated for acceptmbox. This is a fix for thread-safety and allocates all items needed for a netconn when the netconn is created. 2007-12-02 14:53:50 +00:00
goldsimon
b28cd02149 task #7497: Sort lists (pcb, netif, ...) for faster access UDP: move a (connected) pcb selected for input to the front of the list of pcbs so that it is found faster next time. Same for RAW pcbs that have eaten a packet. 2007-11-30 09:44:18 +00:00
goldsimon
cedd5c21e6 first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed to netif->dhcp->pcb only (if that exists) and not to any other pcb for the same port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address) 2007-11-30 08:55:15 +00:00
goldsimon
1b07fecbf3 Introduced ETHARP_STATS 2007-11-28 21:25:06 +00:00
goldsimon
f07c1cf874 fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by letting ip_route only use netifs that are up. 2007-11-28 06:48:50 +00:00
goldsimon
03777ccb21 Changed error handling: ERR_MEM, ERR_BUF and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and sockets block most operations once they have seen a fatal error. 2007-11-27 21:15:44 +00:00
goldsimon
b4741332e0 Implemented new function udp_sendto_if which takes the netif to send as an argument (to be able to send on netifs that are down). 2007-11-27 20:13:16 +00:00
goldsimon
f57c2424cf Fixed bug #21582: pcb->acked accounting can be wrong when ACKs arrive out-of-order 2007-11-26 19:08:39 +00:00
goldsimon
1b208d0954 dhcp_unfold_reply() uses pbuf_copy_partial instead of its own copy algorithm; corrected some assert messages 2007-11-25 11:51:44 +00:00
goldsimon
c86b446d4c Moved lwip_gethostbyname from sockets.c to the new file netdb.c; included lwip_getaddrinfo. 2007-11-24 16:12:02 +00:00
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
f58515b51e api_msg.c, dns.h, dns.c: Implement DNS_DOES_NAME_CHECK option (check if name received match the name query), implement DNS_USES_STATIC_BUF (the place where copy dns payload to parse the response), return an error if there is no place for a new query, and fix some minor problems. 2007-11-19 22:42:01 +00:00
goldsimon
9dd4ad6c1f Added thread-safe function gethostbyname_r (as in glibc) 2007-11-18 16:36:34 +00:00
goldsimon
1faf0ab9e3 Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into inet and chksum part; changed includes in all lwIP files as appropriate 2007-11-16 19:31:10 +00:00
goldsimon
e6ec23d7cc Added sequential (socket API) function gethostbyname and the struct hostent it uses 2007-11-16 17:29:30 +00:00
goldsimon
e2cd201f6a Added sequential dns resolver function for netconn api (netconn_gethostbyname) 2007-11-16 17:16:17 +00:00
fbernon
0c0e8d6544 opt.h, init.c, tcpip.c, dhcp.c, dns.h, dns.c: add DNS client for simple name requests with RAW api interface. Initialization is done in lwip_init() with build time options. DNS timer is added in tcpip_thread context. DHCP can set DNS server ip addresses when options are received. You need to set LWIP_DNS=1 in your lwipopts.h file (LWIP_DNS=0 in opt.h). DNS_DEBUG can be set to get some traces with LWIP_DEBUGF. Sanity check have been added. There is a "todo" list with points to improve. 2007-11-14 23:27:13 +00:00
fbernon
a4d14722f3 sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fixed bug #20900. Now, most of the netconn_peer and netconn_addr processing is done inside tcpip_thread context in do_getaddr. 2007-11-12 22:39:24 +00:00
goldsimon
21bbc9a81a Fixed bug: assert fired when MEMP_ARP_QUEUE was empty (which can happen any time). Now the packet simply isn't enqueued when out of memory. 2007-11-10 17:41:46 +00:00
goldsimon
bfe24b138d Patch #6215: added ifAdminStatus write support (if explicitly enabled by defining SNMP_SAFE_REQUESTS to 0); added code to check link status for ifOperStatus if LWIP_NETIF_LINK_CALLBACK is defined. 2007-11-06 20:53:37 +00:00
goldsimon
f3dbd986cb Task #7410: Removed the need to include core header files in api.h (ip/tcp/udp/raw.h) to hide the internal implementation from netconn api applications. 2007-11-06 20:31:28 +00:00
fbernon
ecce865cfe api.h, api_lib.c, api_msg.c, sockets.c, opt.h: add SO_RCVBUF option for UDP & RAW netconn. You need to set LWIP_SO_RCVBUF=1 in your lwipopts.h (it's disabled by default). Netconn API users can use the netconn_recv_bufsize macro to access it. This is a first release which have to be improve for TCP. Note it used the netconn::recv_avail which need to be more "thread-safe" (note there is already the problem for FIONREAD with lwip_ioctl/ioctlsocket). 2007-11-02 10:37:08 +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
2d5908f4de Fixed bug #21494: The send mss (pcb->mss) is set to 536 (or TCP_MSS if that is smaller) as long as no MSS option is received from the remote host. 2007-11-01 16:53:43 +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
853765954e Fixed bug #21181: On active open, the initial congestion window was calculated based on the configured TCP_MSS, not on the MSS option received with SYN+ACK. 2007-11-01 15:51:43 +00:00
fbernon
7077d51f1f api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than TCP_EVENT_xxx macros to get a code more readable. It could also help to remove some code (like we have talk in "patch #5919 : Create compile switch to remove select code"), but it could be done later. 2007-10-24 12:09:18 +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
goldsimon
536f2e42d2 Fixed UDPLite receive: checksum was calculated wrong if checksum coverage != tot_len 2007-10-09 19:43:29 +00:00
goldsimon
9ef005454a lfree was not updated in mem_realloc! 2007-10-08 18:39:44 +00:00
goldsimon
2ca113a218 Fixed UDPLite SENDING: Checksum was always generated too short and also was generated wrong if checksum coverage != tot_len. 2007-10-07 20:19:23 +00:00
fbernon
9804b25acc Fix CHANGELOG entry 2007-10-07 17:30:50 +00:00
fbernon
87e16a8f47 sockets.c, api.h, api_lib.c: First step to fix "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". VERY IMPORTANT: this change cause an API breakage for netconn_peer, since a parameter type change. Any compiler should cause an error without any changes in yours netconn_peer calls (so, it can't be a "silent change"). It also reduce a little bit the footprint for socket layer (lwip_getpeername & lwip_getsockname use now a common lwip_getaddrname function since netconn_peer & netconn_addr have the same parameters). 2007-10-07 17:26:54 +00:00
goldsimon
b7ef6077df Changed IP_REASSEMBLY to enqueue the received pbufs so that multiple packets can be reassembled simultaneously and no static reassembly buffer is needed. 2007-10-06 15:24:43 +00:00
goldsimon
cb71d6d393 Moved ethernet_input from tcpip.c to etharp.c so all netifs (or ports) can use it. 2007-10-05 14:00:48 +00:00
fbernon
79c00be516 netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the common function to reduce a little bit the footprint (for all functions using only the "netif" parameter). 2007-10-05 13:34:48 +00:00
fbernon
949efb414a netifapi.h, netifapi.c: add functions netifapi_netif_set_up, netifapi_netif_set_down, netifapi_autoip_start and netifapi_autoip_stop. Use a common function to reduce a little bit the footprint (for all functions using only the "netif" parameter). 2007-10-03 16:54:27 +00:00
goldsimon
0aa3d89134 Fixed bug #21080 (tcp_bind without check pcbs in TIME_WAIT state) by checking tcp_tw_pcbs also 2007-09-20 18:27:50 +00:00
kleshov
4ffafdeb86 Fixed bug #21077: inaccuracy in calculation of lwip_stat.mem.used 2007-09-19 17:56:39 +00:00
goldsimon
0bf32b957d Fixed bug #21107 (didn't reset IP TTL in ICMP echo replies) 2007-09-19 06:12:34 +00:00
fbernon
2bdd916b06 udp.h, udp.c, sockets.c: Changes for "#20503 IGMP Improvement". Add IP_MULTICAST_IF option in socket API, and a new field "multicast_ip" in "struct udp_pcb" (for netconn and raw API users), only if LWIP_IGMP=1. Add getsockopt processing for IP_MULTICAST_TTL and IP_MULTICAST_IF. 2007-09-15 15:19:41 +00:00
fbernon
47ae677652 enable to remove SNMP timer (which consumne several cycles even when it's not necessary). snmp_agent.txt tell to call snmp_inc_sysuptime() each 10ms (but, it's intrusive if you use sys_timeout feature). Now, you can decide to call snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but call to a lower frequency). Or, you can decide to not call snmp_inc_sysuptime() or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro. This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only when it's queried (any direct call to "sysuptime" is changed by a call to snmp_get_sysuptime). 2007-09-10 18:50:44 +00:00
fbernon
939180c1a1 igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with IGMP, and others without it, there is a new NETIF_FLAG_IGMP flag to set in netif->flags if you want IGMP on an interface. igmp_stop() is now called inside netif_remove(). igmp_report_groups() is now called inside netif_set_link_up() (need to have LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up (avoid to wait the next query message to receive the matching multicast streams). 2007-09-09 20:46:33 +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
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