Skip to content

Commit 2f86054

Browse files
committed
Update to V2.1.2 modified by ST
Included in X-CUBE-AZURE software expansion package V1.2.0 Fixes #3 Signed-off-by: Frederic.Pillon <[email protected]>
1 parent b0b8adb commit 2f86054

File tree

199 files changed

+24360
-8839
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+24360
-8839
lines changed

CHANGELOG

+253
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,262 @@
11
HISTORY
2+
* These are only the most important changes. For a full list, use git log:
3+
http://git.savannah.nongnu.org/cgit/lwip.git
24

35
(git master)
46

57
* [Enter new changes just after this line - do not remove this line]
68

9+
(STABLE-2.1.2):
10+
11+
++ Bugfixes:
12+
13+
2018-11-21: Jens Nielsen
14+
* netbiosns.c: fix expecting too large packet (bug #55069)
15+
16+
2018-11-19: Dirk Ziegelmeier
17+
* smtp.c: fix compiling with strict C compatibility because of strnlen (bug #55034)
18+
19+
2018-11-12: Simon Goldschmidt
20+
* tcp.c: fix overflow check in tcp_recved triggering invalid assertion (bug #55015)
21+
22+
2018-11-12: Simon Goldschmidt
23+
* tcp.c: fix a bug in sending RST segments (sent from port 0)
24+
25+
(STABLE-2.1.1):
26+
27+
++ Bugfixes:
28+
29+
2018-11-01: Joan Lledó
30+
* sockets.c: fix bad assertion in lwip_poll_dec_sockets_used() (bug #54933)
31+
32+
2018-11-01: Dirk Ziegelmeier
33+
* ip4.c: don't send 127.* to default netif (bug #54670)
34+
35+
2018-10-23: David Girault
36+
* altcp_tls_mbedtls.c: fix use-after free (bug #54774)
37+
38+
2018-10-23: Ognjen Bjelica, Dirk Ziegelmeier
39+
* snmp_scalar.c: Avoid NULL pointer dereference (bug #54886)
40+
41+
2018-10-23: Simon Goldschmidt
42+
* Fix missing standard includes in multiple files
43+
44+
2018-10-17: Ivan Warren
45+
* def.h: fix casting htonX and ntohX to u16_t (bug #54850)
46+
47+
2018-10-12: Simon Goldschmidt
48+
* Revert "tcp_abandon: no need to buffer pcb->local_port" (fix that source port was 0 for RST
49+
called when aborting a connection)
50+
51+
2018-10-11: Jonas Rabenstein
52+
* tcp.c: tcp_recved: check for overflow and warn about too big values (patch #9699)
53+
54+
2018-10-06: Joan Lledó
55+
* sockets.c: alloc_socket(): Check for LWIP_SOCKET_POLL when setting select-
56+
related variables (patch #9696)
57+
58+
2018-10-04: Spencer
59+
* tcp.c: Update prev pointer when skipping entries in tcp_slowtmr (patch #9694)
60+
61+
2018-09-27: Martine Lenders
62+
* lowpan6.c: Fix IEEE 802.15.4 address setting (bug #54749)
63+
64+
(STABLE-2.1.0):
65+
66+
++ New features:
67+
68+
2018-06-17: Simon Goldschmidt
69+
* lwiperf: implemented iPerf client mode
70+
71+
2018-04-23: Dirk Ziegelmeier
72+
* added cmake build files
73+
74+
2018-03-04: Ray Abram
75+
* netbios responder: respond to '*' queries
76+
77+
2018-02-23: Benjamin Aigner
78+
* 6lowpan: add 6lowpan-over-BLE netif (based on existing 6lowpan netif)
79+
80+
2018-02-22: Simon Goldschmidt
81+
* ipv6: add support for stateless DHCPv6 (to get DNS servers in SLAAC nets)
82+
83+
2018-02-16: Simon Goldschmidt
84+
* add raw API http(s) client (with proxy support)
85+
86+
2018-02-01: Simon Goldschmidt
87+
* tcp: add hooks to implement additional socket options
88+
89+
2018-02-01: Simon Goldschmidt
90+
* tcp: add hooks to implement tcp md5 signatures or similar (see contrib/addons for an example)
91+
92+
2018-01-05: Simon Goldschmidt
93+
* Added sys_mbox_trypost_fromisr() and tcpip_callbackmsg_trycallback_fromisr()
94+
These can be used to post preallocated messages from an ISR to the tcpip thread
95+
(e.g. when using FreeRTOS)
96+
97+
2018-01-02: Dirk Ziegelmeier
98+
* task #14780: Add debug helper asserts to ensure threading/locking requirements are met
99+
100+
2017-11-21: Simon Goldschmidt
101+
* task #14600: tcp_alloc(): kill TF_CLOSEPEND connections before other ESTABLISHED
102+
103+
2017-11-21: Simon Goldschmidt
104+
* makefsdata: added option "-ssi:<filename>" to control SSI tag checking/insertion
105+
through a list of filenames, not by checking the file extension at runtime
106+
107+
2017-11-20: Joel Cunningham
108+
* netconn: add LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE to use external DNS resolver (patch #9427)
109+
110+
2017-11-14: Joel Cunningham
111+
* netifapi: Add thread safe ARP cache APIs (task #14724)
112+
113+
2017-11-06: Axel Lin
114+
* TCP: kill existing connections with a LOWER priority than the one currently being opened.
115+
Previous implementations also kill existing connections of the SAME priority.
116+
117+
2017-09-21: Kalle Olavi Niemitalo
118+
* sockets: add poll() implementation (patch #9450)
119+
120+
2017-09-10: Joel Cunningham
121+
* sockets: add readv() implementation (task #14610)
122+
123+
2017-08-04: Simon Goldschmidt
124+
* Clean up DHCP a bit: no need keep msg_out and msg_in as members in struct
125+
dhcp - they are used in a call stack only (p_out and options_out_len as well)
126+
127+
2017-08-04: Simon Goldschmidt
128+
* pbuf: split pbuf_header(s16_t) into pbuf_add_header(size_t) and
129+
pbuf_remove_header(size_t)
130+
131+
2017-07-20: Douglas
132+
* sys: deprecate sys_arch_sem_wait and sys_arch_mbox_fetch returning the
133+
time waited rather they are now defined to return != SYS_ARCH_TIMEOUT
134+
on success.
135+
136+
2017-07-03: Jakub Schmidtke
137+
* tcp: added support for sending TCP SACKs
138+
139+
2017-06-20: Joel Cunningham
140+
* netconn/netdb: added core locking support to netconn_gethostbyname (task #14523)
141+
142+
2017-04-25: Simon Goldschmidt
143+
* dhcp: added two hooks for adding and parsing user defined DHCP options
144+
145+
2017-04-25: Joel Cunningham
146+
* sockets: added recvmsg for UDP (together with CMSG and IP_PKTINFO) (task #14247)
147+
148+
2017-04-20: Joel Cunningham
149+
* tcp: added Appropriate Byte Counting support (task #14128)
150+
151+
2017-04-11: Simon Goldschmidt
152+
* netconn/sockets: remove fatal error handling, fix asynchronous error handling,
153+
ensure data before RST can be received
154+
155+
2017-03-30: Simon Goldschmidt
156+
* added "application layered TCP" connection API (altcp) for seamless integration
157+
of TLS or proxy connections
158+
159+
2017-03-09: Simon Goldschmidt
160+
* sockets: add recvmsg for TCP
161+
162+
2017-03-02: Joel Cunningham
163+
* netconn/sockets: vectorize netconn_write for TCP, treating a vectored I/O write
164+
atomically in regards to TCP segmentation (patch #8882)
165+
166+
2017-03-02: Simon Goldschmidt
167+
* netconn: added nonblocking accept/recv to netconn API (task #14396)
168+
169+
2017-02-28: Simon Goldschmidt
170+
* Added LWIP_SINGLE_NETIF for small targets with only one netif
171+
172+
2017-02-10: David van Moolenbroek
173+
* Implement UDP and RAW multicast support for IPv6 (core API, not netconn/sockets)
174+
175+
2017-02-04: David van Moolenbroek
176+
* IPv6 scopes support
177+
178+
2017-01-20: Joel Cunningham
179+
* sockets: add interface name/index APIs (task #14314)
180+
181+
2017-01-08: David van Moolenbroek
182+
* Extensions to RAW API (patch #9208)
183+
- Connected RAW PCBs
184+
- Add raw_sendto_if_src()
185+
- Support IP_HDRINCL socket option
186+
187+
++ Bugfixes:
188+
189+
2018-06-19: Simon Goldschmidt
190+
* tcp: fix RTO timer not working if link is down
191+
192+
2018-06-15: Sylvain Rochet
193+
* ppp: multiple smaller bugfixes
194+
195+
2018-05-17: Simon Goldschmidt
196+
* etharp: arp table can now be bigger than 127 entries
197+
198+
2018-04-25: Jens Nielsen
199+
* tftp server: correctly handle retransmissions
200+
201+
2018-04-18: Simon Goldschmidt
202+
sockets: fix race conditions when closing full-duplex sockets
203+
204+
2018-03-09: Simon Goldschmidt
205+
* 6lowpan: fix to work against contiki; added ZigBee encapsulation netif for tests
206+
207+
2018-02-04: Simon Goldschmidt
208+
* sockets: fix inconsistencies on close (inconsistent error codes, double FIN)
209+
210+
2018-01-05: Dirk Ziegelmeier
211+
* Fix bug #52748: the bug in timeouts.c by reimplementing timer logic to use
212+
absolute instead of relative timeout values
213+
214+
2017-12-31: Dirk Ziegelmeier
215+
* Fix bug #52704: DHCP and bad OFFER: Stop timeout only if offer is accepted
216+
217+
2017-11-08: Joel Cunningham
218+
* netif: ensure link and admin states are up in issue reports (bug #52353)
219+
220+
2017-09-12: David Lockyer
221+
* select: allocate select_cb from memp for LWIP_MPU_COMPATIBLE = 1 (bug #51990)
222+
223+
2017-09-11: Simon Goldschmidt
224+
* tcp_in.c: fix bug #51937 (leaking tcp_pcbs on passive close with unacked data)
225+
226+
2017-08-11: Joel Cunningham
227+
* lwip_itoa: fix converting the number 0 (previously converted to '\0') (bug #51729)
228+
229+
2017-08-08: Dirk Ziegelmeier
230+
* ip4_route_src: parameter order is reversed: ip4_route_src(dest, src) -> ip4_route_src(src, dest)
231+
to make parameter order consistent with other ip*_route*() functions
232+
Same also applies to LWIP_HOOK_IP4_ROUTE_SRC() parameter order.
233+
234+
2017-08-04: Joel Cunningham
235+
* tcp: re-work persist timer to fully close window (details in bug #50837)
236+
237+
2017-07-26: Simon Goldschmidt
238+
* snmp_msg.c: fix bug #51578 (SNMP failed to decode some values on non 32bit platforms)
239+
240+
2017-07-20: Simon Goldschmidt
241+
* compatibility headers: moved from 'src/include/posix' to 'src/include/compat/posix',
242+
'src/include/compat/stdc' etc.
243+
244+
2017-05-09: Joel Cunningham
245+
* tcp: add zero-window probe timeout (bug #50837)
246+
247+
2017-04-11: Simon Goldschmidt
248+
* sockets.c: task #14420 (Remove sys_sem_signal from inside SYS_ARCH_PROTECT
249+
crit section) done for LWIP_TCPIP_CORE_LOCKING==1
250+
251+
2017-02-24: Simon Goldschmidt
252+
* sockets.c: fixed close race conditions in lwip_select (for LWIP_NETCONN_FULLDUPLEX)
253+
254+
2017-02-24: Simon Goldschmidt
255+
* sockets.c: fixed that select ignored invalid/not open sockets in the fd_sets (bug #50392)
256+
257+
2017-01-11: David van Moolenbroek
258+
* Lots of IPv6 related fixes and improvements
259+
7260
(STABLE-2.0.3)
8261

9262
++ Bugfixes:

FILES

+5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
api/ - The code for the high-level wrapper API. Not needed if
22
you use the lowel-level call-back/raw API.
33

4+
apps/ - Higher layer applications that are specifically programmed
5+
with the lwIP low-level raw API.
6+
47
core/ - The core of the TPC/IP stack; protocol implementations,
58
memory and buffer management, and the low-level raw API.
69

10+
include/ - lwIP include files.
11+
712
netif/ - Generic network interface device drivers are kept here.
813

914
For more information on the various subdirectories, check the FILES

README

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
INTRODUCTION
22

3-
lwIP is a small independent implementation of the TCP/IP protocol
4-
suite that has been developed by Adam Dunkels at the Computer and
5-
Networks Architectures (CNA) lab at the Swedish Institute of Computer
6-
Science (SICS).
3+
lwIP is a small independent implementation of the TCP/IP protocol suite.
74

85
The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
96
while still having a full scale TCP. This making lwIP suitable for use
107
in embedded systems with tens of kilobytes of free RAM and room for
118
around 40 kilobytes of code ROM.
129

10+
lwIP was originally developed by Adam Dunkels at the Computer and Networks
11+
Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS)
12+
and is now developed and maintained by a worldwide network of developers.
1313

1414
FEATURES
1515

@@ -22,22 +22,28 @@ FEATURES
2222
* ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
2323
Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
2424
(Address autoconfiguration)
25+
* DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
2526
* UDP (User Datagram Protocol) including experimental UDP-lite extensions
2627
* TCP (Transmission Control Protocol) with congestion control, RTT estimation
27-
and fast recovery/fast retransmit
28+
fast recovery/fast retransmit and sending SACKs
2829
* raw/native API for enhanced performance
2930
* Optional Berkeley-like socket API
30-
* DNS (Domain names resolver)
31+
* TLS: optional layered TCP ("altcp") for nearly transparent TLS for any
32+
TCP-based protocol (ported to mbedTLS) (see changelog for more info)
33+
* PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet)
34+
* DNS (Domain name resolver incl. mDNS)
35+
* 6LoWPAN (via IEEE 802.15.4, BLE or ZEP)
3136

3237

3338
APPLICATIONS
3439

35-
* HTTP server with SSI and CGI
36-
* SNMPv2c agent with MIB compiler (Simple Network Management Protocol)
40+
* HTTP server with SSI and CGI (HTTPS via altcp)
41+
* SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
3742
* SNTP (Simple network time protocol)
3843
* NetBIOS name service responder
3944
* MDNS (Multicast DNS) responder
4045
* iPerf server implementation
46+
* MQTT client (TLS support via altcp)
4147

4248

4349
LICENSE

UPGRADING

+35
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,41 @@ with newer versions.
88

99
* [Enter new changes just after this line - do not remove this line]
1010

11+
(2.1.0)
12+
13+
++ Application changes:
14+
15+
* Use the new altcp API for seamless TLS integration into existing TCP applications (see changelog)
16+
* TCP only kills existing connections with a LOWER priority than the one currently being opened.
17+
Previous implementations also kill existing connections of the SAME priority.
18+
* ip4_route_src: parameter order is reversed: ip4_route_src(dest, src) -> ip4_route_src(src, dest)
19+
to make parameter order consistent with other ip*_route*() functions.
20+
Same also applies to LWIP_HOOK_IP4_ROUTE_SRC() parameter order.
21+
* pbuf API: pbuf->type (an u8_t holding the enum 'pbuf_type') has changed to only hold a
22+
description of the pbuf (e.g. data following pbuf struct, data volatile, allocation
23+
source heap/pool/etc.). As a consequence, applications can't test pbuf->type any more.
24+
Use pbuf_match_type(pbuf, type) instead.
25+
* socket API: according to the standard, SO_ERROR now only returns asynchronous errors.
26+
All other/normal/synchronous errors are (and always were) available via 'errno'.
27+
LWIP_SOCKET_SET_ERRNO has been removed - 'errno' is always set - and required!
28+
* httpd LWIP_HTTPD_CGI_SSI: httpd_cgi_handler() has an additional parameter "struct fs_file *"
29+
30+
++ Port changes:
31+
32+
* tcpip_trycallback() was renamed to tcpip_callbackmsg_trycallback() to avoid confusion
33+
with tcpip_try_callback()
34+
* compatibility headers: moved from 'src/include/posix' to 'src/include/compat/posix',
35+
'src/include/compat/stdc' etc.
36+
* The IPv6 implementation now supports address scopes. (See LWIP_IPV6_SCOPES documentation
37+
and ip6_zone.h for more documentation)
38+
* LWIP_HOOK_DHCP_APPEND_OPTIONS() has changed, see description in opt.h (options_out_len is not
39+
available in struct dhcp any more)
40+
* Added debug helper asserts to ensure threading/locking requirements are met (define
41+
LWIP_MARK_TCPIP_THREAD() and LWIP_ASSERT_CORE_LOCKED()).
42+
* Added sys_mbox_trypost_fromisr() and tcpip_callbackmsg_trycallback_fromisr()
43+
These can be used to post preallocated messages from an ISR to the tcpip thread
44+
(e.g. when using FreeRTOS)
45+
1146
(2.0.2)
1247

1348
++ Application changes:

library.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name=STM32duino LwIP
2-
version=2.0.3
2+
version=2.1.2
33
author=Adam Dunkels <[email protected]>
44
maintainer=See url
55
sentence=A Lightweight TCP/IP stack
6-
paragraph=lwIP is a small independent implementation of the TCP/IP protocol suite that has been developed by Adam Dunkels at the Computer and Networks Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS). The focus of the lwIP TCP/IP implementation is to reduce the RAM usage while still having a full scale TCP. This making lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.
6+
paragraph=lwIP is a small independent implementation of the TCP/IP protocol suite that has been developed by Adam Dunkels at the Computer and Networks Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS). The focus of the lwIP TCP/IP implementation is to reduce the RAM usage while still having a full scale TCP. This making lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM. Note: modified by ST.
77
category=Communication
88
url=http://git.savannah.gnu.org/cgit/lwip.git
99
architectures=stm32

0 commit comments

Comments
 (0)