Version 0.11.2 released

This is a bugfix release.

  • Don't free contexts in mqtt3_context_disconnect() (bug #799688 / #801678).
  • Only free will if present when freeing a client context.

Version 0.11.1 released

This is an important bugfix release. It fixes a buffer overrun that affects 0.11 only. Users of 0.11 should upgrade immediately.

  • Fix buffer overrun when checking for + and # in topics (bug #799688).
  • Pub client now quits if publish fails.

Thanks to Karl Palsson.

Version 0.11 released

This is an update with some fairly minor changes and some bug fixes. I had planned on more exciting features but my time has been occupied getting ready for the 25th, when I'm getting married. Those changes will just have to wait until 0.12!

  • Removed all old sqlite code.
  • Remove client id limit in clients.
  • Implemented $SYS/broker/heap/maximum size
  • Implemented $SYS/broker/clients/inactive to show the number of disconnected non-clean session clients.
  • $SYS/broker/heap/current size and maximum size messages now include "bytes" to match rsmb message format.
  • Implemented the retained_persistence config file option - a synonym of the persistence option.
  • Added security_external.c to broker source to make it easier for third parties to add support for their existing username/password and ACL database for security checks. See external_security_checks.txt.
  • $SYS messages are now only republished when their value changes.
  • Windows native broker now responds to command line arguments.
  • Simplify client disconnecting so wills gets sent in all cases (bug #792468).
  • Clients now have a --quiet option.
  • The on_disconnect() callback will always be called now, even if the client has disconnected unexpectedly.
  • Always close persistent DB file after restoring.
  • Return error code when exiting the clients.
  • mosquitto_publish() now returns MOSQ_ERR_INVAL if the topic contains + or #
  • mosquitto now silently rejects published messages with + or # in the topic.
  • max_connections is now a per-listener setting instead of global.
  • Connection count is now reduced when clients disconnect (bug #797983).

Thanks to Sebastian Kroll and Karl Palsson.

Nanode - a cheap networked arduino clone

The arduino, the open source microcontroller board, has had MQTT support for a long time in the form of Nick O'Leary's arduino client. It does however require networking support which has traditionally provided by an add on shield, which increases the cost of the system.

The Nanode is an arduino compatible board which includes network support and can be built for approximately the same cost as a normal arduino board. It's still a work in progress, but is definitely worth a look if you want to use low power MQTT capable sensors/controllers.

Version 0.10.2 released

This is a bugfix release.

  • Don't abort when connecting if the first connection fails. This is important on e.g. Windows 7, where IPV6 is offered as the first choice but may not be available.
  • Deal with long logging messages properly (bug #785882).
  • Fix library compilation on Symbian - no pselect() available.
  • Don't stop processing subscriptions on received messages after a subscription with # matches. (bug #791206).

Please see the download page.

Thanks again to Karl Palsson and Yuvraaj Kelkar.

Version 0.10.1 released

This is a bugfix release primarily for Windows users.

  • Fix Windows compilation.
  • Fix on Windows - call lib init/cleanup.
  • Don't abort when connecting if given an unknown address type (assuming an IPv4 or IPv6 address is given).

Please see the download page.

Thanks to Karl Palsson.

MQTT Ontology

Mark Hindess has written a blog post titled Home Automation Protocols: MQTT, where he asks for suggestions on how to go forward making "a specification for topic usage and semantics". I think this kind of work is really valuable to make it easy to have different MQTT systems that can interoperate. If you've got any suggestions you can make, please go and leave a comment there.

Version 0.10 released

This release brings the new MQTT v3.1 features to the broker - client authentication and topic access control. See mosquitto.conf(5) or the included example password and ACL files.

  • Implement support for the password_file option and accompanying authentication requirements in the broker.
  • Implement topic Access Control Lists.
  • mosquitto_will_set() and mosquitto_publish() now return MOSQ_ERR_PAYLOAD_SIZE if the payload is too large (>268,435,455 bytes).
  • Bridge support can now be disabled at compile time.
  • Group together network writes for outgoing packets - don't send single byte writes!
  • Add support for clientid_prefixes variable.
  • Add support for the clientid config variable for controlling bridge client ids.
  • Remove 32-bit database ID support because htobe64() no longer used.
  • Multiple client subscriptions to the same topic result in only a single subscription. Bug #744077.

Please see the download page.

Thanks to Adam Rudd, Joshua Lock,  Sang Kyeong Nam and Yuvraaj Kelkar.

Version 0.9.3 released

This is a bugfix release:

  • Set retained message status for QoS 2 messages (bug #726535).
  • Only abort with an error when opening listening sockets if no address family is available, rather than aborting when any address family is not available.
  • Don't clean queued messages when a non clean session client reconnects.
  • Make compatible with Python <2.6.
  • Fix mosquitto.h header includes for Windows.

Please see the download page.

Thanks to Joe B, David Monro,  Yuvraaj Kelkar and Colin Jones.