Releases: halfgaar/FlashMQ
FlashMQ 1.24.0
Version 1.24.0 is mostly a maintenance release; no big new features added. Aside from some internal refactoring, there is:
- Same fixes from 1.23.1 and 1.23.3 releases.
- Add config option
persistence_data_to_saveto give more control over which data is saved. - Fix showing 'server shutting down' in logs whether FlashMQ is client or server. It now properly only mentions 'server' when it's the server shutting down, local or remote.
- Fix marking any non-worker thread as 'main' in logs. Now the actual thread name is shown, also for threads created by the plugin.
- Reduce locking around client stores in even loops.
- Don't render 'subscribe' log lines when subscriptions are not configured to be logged. This saves overhead.
- Database files in
storage_dirare now always created with strict permissions.
FlashMQ 1.23.2
FlashMQ version 1.23.2 contains a security fix.
It was discovered that queuing QoS messages in sessions can cause a memory leak because of circularly tracked references. Version 1.23.2 fixes the issue. Upgrading is advised.
FlashMQ 1.23.1
Fixes reporting max QoS of 2 in MQTT 5 CONNACK packet. Only 0 or 1 is allowed by the standard.
FlashMQ 1.23.0
Version 1.23.0 doesn’t contain any major changes, just some small improvements.
New features
- Ability to set user, group and access permissions on unix socket.
- Add
max_qossetting.
Fixes and improvements
- When saving state files (sessions, retained messages, etc), disk space calculation incorrectly used a 32 bit int on 32 bit platforms. This could make FlashMQ skip making the backup of state files when the file format version changes (these backups are made to support downgrading).
- Somewhat improve mTLS (mutual, or client TLS) handshake performance. Caveat: a bottleneck was detected in OpenSSL here. Using OpenSSL 3.2 or higher (like Debian 13 does) is advised.
- A few small general quality improvements.
Download
FlashMQ 1.22.0
New features
- Unix domain socket support has been added to listeners.
- Listeners can now have an
acme_redirect_urlfor enhanced Let's Encrypt integration. - Listeners now have an option
drop_on_absent_certificate. - Bridges now have a
connection_countoption for load-balancing. - Bridges and listeners now have a
max_buffer_sizeoption. - Listeners now have an
only_allow_fromanddeny_fromoption.
Plugin changes
The function flashmq_get_client_address() has been replaced with flashmq_get_client_address_v4().
Release details
See FlashmQ 1.22.0 released for details and downloads.
FlashMQ 1.21.1
Version 1.21.1 fixes a crash bug introduced in version 1.19.0, caused by timed events. Upgrading is advised.
FlashMQ 1.21.0
Version 1.21.0 offers more control over subscriptions from the plugin interface. Additionally, it includes a few fixes.
FlashMQ 1.20.0
Version 1.20.0 contains one security fix and four new features:
Security fix
- In outgoing bridge connections, using
ca_fileorca_dirhad the issue that certificate validation was still also done using the system’s trusted certificates, instead of only with the custom CAs specified. This has been fixed. This ensures certificate pinning works as intended. Note that invalid certificates were still rejected, so the security impact is not high.
New features
- Bridge topic prefixing. This allows topic trees to be mapped in different sub-trees, locally or remotely.
- X509 client-certificate based authentication in outgoing bridge connections.
- Add ability to configure minimum TLS version for listeners and bridges, and log the version negotiated per client.
- Plugin interface allows silently dropping an incoming publish, with success ACK to client.
Download
FlashMQ 1.19.0
FlashMQ 1.19.0 is a small enhancement release. Aside from some internal enhancements, it contains:
- The counter
$SYS/broker/subscriptions/countis functional again. It was disabled a while ago because it was implemented in an inefficient way. It’s now implemented as a sort of lazy counter that is mostly accurate, and corrected periodically. - The same correction algorithm is now used for
$SYS/broker/retained messages/count, because it could drift. - The config options
plugin_timer_periodandsave_state_intervalcan now be dynamically changed in the config file and is applied on reload. - MQTT5 retain handling on subscriptions is now supported, meaning clients can place subscriptions and request not to get the retained messages that go with it.
- Fix memory spike in saving and loading large amounts of retained messages to disk.
FlashMQ 1.18.2
A change introduced in 1.17.2 can possibly cause a spinning loop situation on certain, unknown, SSL read errors and hang. Version 1.18.2 contains a fix. Upgrading is advised.