[{"data":1,"prerenderedAt":6},["ShallowReactive",2],{"1wIJpFG_mU1MRxyMraUZASb-MNoLrltS5g2TfU5k-WE":3},{"changelog":4,"createAt":5},"\u003Cp>This is the first beta release of 0.25.7. I am proud to announce that NanoMQ now runs on Zephyr! \nPlease refer to the following change logs for more information.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Architecture &amp; Platform Evolution\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Deep Zephyr RTOS Integration: Extensive refactoring was performed at the Platform Layer to resolve memory allocator matching issues in microkernel environments. By optimizing the underlying memory management mechanisms, the NanoNNG Actor model can now run more stably on resource-constrained Zephyr embedded devices.\u003C\u002Fp>\n\u003Cp>Mountpoint Mechanism Pushed Down to Transport Layer: The multi-tenant Mountpoint feature has been completely rewritten. The logic for stripping and mapping topic prefixes has been pushed down from the routing layer to Transport Layer modules such as broker_tcp.c. This significantly reduces routing matching overhead and improves concurrent throughput in multi-tenant scenarios.\u003C\u002Fp>\n\u003Col>\n\u003Cli>New Features\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Per-Bridge Independent Cache Configuration: Removed the global coupling of bridge caches and introduced the Per-Bridge Cache feature. At the underlying level, isolated management of independent cache files, configurations, and data migration is implemented by invoking sqlite_handler.c and mqtt_db.c, with corresponding REST APIs exposed for dynamic control.\u003C\u002Fp>\n\u003Cp>REST API Client Lifecycle Management: Added route handling for the DELETE method in the HTTP server code, allowing operations systems to precisely kick out specific clients via the API based on their clientid.\u003C\u002Fp>\n\u003Cp>Multiple Credentials Support for HTTP Server: The built-in HTTP server now supports configuring multiple sets of Basic-Auth credentials, enhancing permission flexibility for monitoring and operational interfaces.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Security Hardening &amp; Cryptography Optimization (Security &amp; TLS)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Hardware-Level Key and Identity Mapping: The OpenSSL TLS engine now supports PKCS#11 credential URIs, allowing the direct use of PEM certificates from hardware security modules. Additionally, it extracts the peer_cn and peer_subject attributes from peer certificates and supports configuring peer_cert_as_username at the Listener level, enabling direct mapping from device certificates to MQTT usernames.\u003C\u002Fp>\n\u003Cp>Handshake and Certificate Parsing Protection: Fixed an underlying issue in OpenSSL where the final flight of the TLS handshake was not correctly flushed. In the mbedTLS engine, strict rejection logic was added for malformed certificates with trailing garbage in own_cert to prevent out-of-bounds parsing.\u003C\u002Fp>\n\u003Cp>SCRAM Authentication Boundary Protection: Fixed error handling logic in scram.c and the underlying base64.c decoder by introducing strict Base64 boundary validation, effectively closing a potential memory overflow vulnerability.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Protocol Compatibility &amp; Stability\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>MQTT 5.0 Session and State Management: Corrected the handling logic in nmq_mqtt.c for DISCONNECT packets with a Reason Code of 0 sent by clients. The system now strictly complies with the MQTT v5 specification to prevent session states from being erroneously discarded. Additionally, fixed the mechanism for dispatching duplicate Retained messages and the calculation logic for Message Expiry (msg expiry).\u003C\u002Fp>\n\u003Cp>Rule Engine Memory Leak and UAF Fixes: Fixed a fatal Use-After-Free (UAF) pointer error in rule.c and the underlying cJSON.c triggered when processing object-field republishing. This greatly improves system stability during edge data routing.\u003C\u002Fp>\n\u003Cp>Runtime and Concurrency Protection: Added concurrent operation protection during Bridge Reloads (hot reloading), fixing a memory leak caused during the reload process. Fixed a segmentation fault (Segfault) in the HOCON configuration parser (hocon.c) triggered when handling empty array literals. Fixed a race condition crash where the underlying pipe (pipe.c) failed to correctly retain the old pipe reference when forcefully kicking out duplicate Client IDs.\u003C\u002Fp>\n\u003Ch2>What's Changed in NanoMQ\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>fix a memleak case in bridge reload by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2421\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2421\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>fix(nanomq): Stabilize REST and broker runtime paths by @reneleonhardt in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2406\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2406\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>For #2423 by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2425\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2425\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bump actions\u002Fsetup-node from 6.3.0 to 7.0.0 by @dependabot[bot] in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2394\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2394\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>guard sub &amp; resend aciton with CONNACK reason code by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2426\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2426\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>bridge reload protection by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2427\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2427\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Improve MQTTV5 compatibility by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2436\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2436\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bump docker\u002Fsetup-buildx-action from 4.2.0 to 4.4.1 by @dependabot[bot] in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2439\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2439\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bump docker\u002Fsetup-qemu-action from 4.1.0 to 4.4.0 by @dependabot[bot] in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2440\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2440\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Bump docker\u002Fbuild-push-action from 7.2.0 to 7.4.0 by @dependabot[bot] in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2441\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2441\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>NEW [rest_api] kick out a client by clientid via DELETE by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2429\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2429\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>FIX [conf_api] map the \"subject\" http_auth param to SUBJECT by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2430\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2430\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>FIX [bridge] Fix ignored return value of nng_lmq_get by @borkhuis in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2447\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2447\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>NEW [listener] add mount_point support (nanomq side) by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2428\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2428\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Comprehensive rewrite of mountpoint feature (#2428) by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2458\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2458\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>[bridge] Per-bridge cache config, files, migration and REST (fixes #2445) by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2453\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2453\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>NEW [http_server] support multiple basic-auth credentials by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2457\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2457\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>build_packages: enable mbed-tls threading in the packaged build by @jayenashar in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2448\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2448\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>FIX [rule_engine] fix cJSON use-after-free in object-field republish by @sankalpsthakur in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2452\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2452\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>move nng head for CI tests by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2459\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2459\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Integrate Zephyr RTOS  by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2433\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2433\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>fixes for 4 issues by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2462\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2462\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>New Contributors\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>@D-r-P-3-p-p-3-r made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2429\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2429\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>@borkhuis made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2447\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2447\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>@sankalpsthakur made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2452\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fpull\u002F2452\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Full Changelog\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fcompare\u002F0.25.6...0.25.7\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002Fnanomq\u002Fcompare\u002F0.25.6...0.25.7\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>What's Changed in NanoNNG\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Fix error handler of nmq_base64_encode\u002Fdecode in scram by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1618\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1618\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>fix: add strict Base64 boundary decoder by @reneleonhardt in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1602\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1602\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Fix will property propagation to publish by @thebolt in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1624\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1624\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Enhancments on SQLIte offline msg caching by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1626\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1626\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>FIX [tls] flush final OpenSSL handshake flight by @bmiesch in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1620\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1620\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>tls: support PKCS#11 credential URIs with OpenSSL by @pbestler in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1628\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1628\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>fix NNG_ENABLE_STATS scope for turning stats off by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1656\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1656\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Fix duplicated retain msg. Improve MQTT V5 compatibility. CMake modifications. Fix msg expiry of retained. by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1658\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1658\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>fix(tests): serve the chunked HTTP response locally by @pbestler in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1637\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1637\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>MDF [mqtt_db] remove obsolated enum of MQTT Ver by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1660\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1660\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>fix(tls): allow a PEM certificate with a PKCS#11 key by @pbestler in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1636\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1636\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Present the full certificate chain from certfile by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1643\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1643\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Add per-listener mount_point support by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1644\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1644\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Implement peer_cn\u002Fpeer_subject for the OpenSSL TLS engine by @D-r-P-3-p-p-3-r in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1645\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1645\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>broker_tls: match the pipe after cloning conn_param by @jayenashar in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1667\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1667\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Fixed segfault on empty HOCON array literal. by @xinyi-xs in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1671\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1671\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>pipe: hold the old pipe while kicking a duplicate client ID by @jayenashar in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1669\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1669\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>MDF [broker_tcp] move mountpoint strip to transport layer for bette… by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1678\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1678\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>MDF [mbedtls\u002Ftls] reject malformed trailing certificates in own_cer… by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1684\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1684\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>fixes #1679 make HOCON file tests portable on Windows by @bmiesch in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1681\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1681\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support Per-Bridge-Node \u003Ccode>cache\u003C\u002Fcode> config by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1672\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1672\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>FIX [tls] read the peer certificate CN attribute directly by @bmiesch in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1675\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1675\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support multiple http_server basic-auth credentials by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1677\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1677\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>sync with upstream by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1685\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1685\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>NEW [tls] per-listener peer_cert_as_username by @bmiesch in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1676\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1676\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Integrate Zephyr platform layer and fix allocator mismatches by @alvin1221 in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1647\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1647\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>use new enum value : NNG_MQTT_SUCCESS by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1688\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1688\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Sync code between branches by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1689\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1689\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>4 Security issue fixes by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1690\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1690\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>FIX [nmq_mqtt] discard session if DISCONNECT with 0 code #2461  by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1692\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1692\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cul>\n\u003Cli>MDF [nmq_mqtt] only drop session if a V5 client disconnect with ses… by @JaylinYu in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1694\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1694\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>New Contributors\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>@thebolt made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1624\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1624\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>@pbestler made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1628\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1628\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>@D-r-P-3-p-p-3-r made their first contribution in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1643\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fpull\u002F1643\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Full Changelog\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fcompare\u002F0.25.6...0.25.7\">https:\u002F\u002Fgithub.com\u002Fnanomq\u002FNanoNNG\u002Fcompare\u002F0.25.6...0.25.7\u003C\u002Fa>\u003C\u002Fp>\n","2026-10-21",1794542895391]