Overview
This release adds fixes and improvements, and more examples.
Important Changes
- Mongoose built-in TCP/IP stack now includes an RTOS-powered BSD compatibility layer. All existing applications using the event-driven API remain as they are, and new traditional applications using the Berkeley Sockets API can now take advantage of Mongoose built-in TCP/IP stack. See this example
- Added support for Modbus-TCP
- Built-in TLS is now able to support secp384r1 signatures
- Built-in TLS now accepts CA bundles for clients, it will search for the proper certificate in the bundle. This is, of course, slower and more demanding than simply feeding the proper CA.
- Mongoose built-in TCP/IP stack now supports PPP and PPPoE. The former PPP driver has been refactored into a configurable AT-command driver over a serial line, freeing PPP to work over Ethernet (PPPoE) and connect directly to an ISP, on (for example) bridged ATM connections. See an example
- Mongoose built-in TCP/IP stack now supports 802.1Q VLAN tagging, Mongoose can be a host in a VLAN.
- PPP now supports IPv6
- Added an mDNS resolver. Mongoose can now resolve
.localhosts in URIs, reusing an existing user mDNS server - The OTA firmware update API now supports rollback and firmware signing; see this example
- FreeRTOS handling has changed, instead of
MG_ARCH=FREERTOSuseMG_ENABLE_FREERTOS=1. The former has been deprecated and trying to build using it will result in a compiler error - The Embedded Filesystem feature is now always enabled, and it has a new usability add-on, so you can have your own filesystems in RAM. To point to a filesystem, you need to configure
mg_mem_files = mg_packed_files. The former is a global variable, the latter is generated by the packing utility. - Built-in TCP/IP stack states
MG_TCPIP_EV_ST_CHGandMG_TCPIP_EV_ST6_CHGhave been renamed toMG_TCPIP_EV_STATE_CHANGEandMG_TCPIP_EV_STATE6_CHANGErespectively - Improved support for MbedTLS in general and version 4 in particular
- Added docstrings to all headers and a "dashboard interface" layer, this allows fast and easy AI-generation of complex web-based user interfaces
Minor changes
- Improved
MG_ARCH_CUBEsupport, along with a tighter integration with the STM32Cube environment - Mongoose built-in TCP/IP stack now honors peer's TCP window
- Mongoose built-in TCP/IP stack now sends gratuitous ARP and NA when ready
- Mongoose built-in TCP/IP stack now automatically closes any existing TCP connections when DHCP/SLAAC forces an IP/IPv6 address change
- Mongoose built-in TCP/IP stack DHCP now honors lease owner, supporting servers announcing other servers' leases
- Mongoose built-in TCP/IP stack SPI helper API has changed, see here
- Mongoose built-in TLS now honors IPv6 SAN in certificates
- Mongoose built-in TLS now supports not configuring client certificates for some not-enforced two-way authentication scenarios
- Added an example on how to support RTSP video streaming
- Improved built-in TCP/IP IPv6 compatibility with C89 compilers
- Improved built-in TCP/IP testing, particularly IPv6
- Improved built-in TLS testing
- Improved test coverage
- Simplified STM32 and Raspberry Pi Pico families examples structure into a more concise board-oriented scheme