mosquitto/www/posts/2013/08/version-1-2-released.md

128 lines
6.0 KiB
Markdown
Raw Normal View History

2018-08-08 21:43:14 +00:00
<!--
.. title: Version 1.2 released
.. slug: version-1-2-released
.. date: 2013-08-07 23:13:34
.. tags: Releases
.. category:
.. link:
.. description:
.. type: text
-->
This is a (long overdue) feature release.
There is a potential gotcha when upgrading to this release because the default
version of TLS used has changed from 1.0 to 1.2. Python does not yet have
support for TLS&gt;1.0 so Python clients will be unable to communicate with
brokers using the default TLS settings.
The source is available at the [download page] and binaries will become
available in the near future.
# Broker
* Replace O(n) username lookup on CONNECT with a roughly O(1) hashtable
version.
* It is now possible to disable $SYS at compile time.
* Add dropped publish messages to load tree in $SYS. Closes bug #1183318.
* Add support for logging SUBSCRIBE/UNSUBSCRIBE events.
* Add `log_dest file` logging support.
* Auth plugin ACL check function now passes the client id as well as username
and password.
* The `queue_qos0_messages` option wasn't working correctly, this has now been
fixed. Closes bug #1125200.
* Don't drop all messages for disconnected durable clients when
`max_queued_messages=0`.
* Add support for `log_type all`.
* Add support for `-v` option on the command line to provide the equivalent of
`log_type all` without needing a config file.
* Add the `upgrade_outgoing_qos` option, a non-standard feature.
* Persistence data is now written to a temporary file which is atomically
renamed on completion, so a crash during writing will not produce a corrupt
file.
* mosquitto.conf is now installed as mosquitto.conf.example
* Configuration file errors are now reported with filename and line number.
* The broker now uses a monotonic clock if available, to avoid changes in time
causing client disconnections or message retries.
* Clean session and keepalive status are now display the log when a client
connects.
* Add support for TLSv1.2 and TLSv1.1.
* Clients that connect with zero length will topics are now rejected.
* Add the ability to set a maximum allowed PUBLISH payload size.
* Fix an ACL with topic `#` incorrectly granting access to $SYS.
* Fix retained messages incorrectly being set on wildcard topics, leading to
duplicate retained messages being sent on subscription. Closes bug #1116233.
* Don't discard listener values when no "port" option given. Closes bug
#1131406.
* Client password check was always failing when security was being reapplied
after a config reload. This meant that all clients were being disconnected.
This has been fixed.
* Fix build when `WITH_TLS=no`. Closes bug #1174971.
* Fix single outgoing packets not being sent in a timely fashion if they were
not sent in one call to write(). Closes bug #1176796.
* Fix remapping of messages for clients connected to a listener with
`mount_point` set. Closes bug #1180765.
* Fix duplicate retained messages being sent for some wildcard patterns.
* If a client connects with a will topic to which they do not have write
access, they are now disconnected with CONNACK "not authorised".
* Fix retained messages on topic foo being incorrectly delivered to
subscriptions of /#
* Fix handling of SSL errors on SSL_accept().
* Fix handling of QoS 2 messages on client reconnect.
* Drop privileges now sets supplementary groups correctly.
* Fix load reporting interval (is now 60s).
* Be strict with malformed PUBLISH packets - clients are now disconnected
rather than the packet discarded. This goes inline with future OASIS spec
changes and makes other changes more straightforward.
* Process incoming messages denied by ACL properly so that clients don't keep
resending them.
* Add support for `round_robin` bridge option.
* Add bridge support for verifying remote server certificate subject against
the remote hostname.
* Fix problem with out of order calls to free() when restarting a lazy bridge.
* The broker now attempts to resolve `bind_address` and bridge addresses
immediately when parsing the config file in order to detect invalid hosts.
* Bridges now set their notification state before attempting to connect, so if
they fail to connect the state can still be seen.
* Fix bridge notification payload length - no need to send a null byte.
* mosquitto_passwd utility now reports errors more clearly.
* Fix `mosquitto_passwd -U`.
 
# Client library
* Add support for TLSv1.2 and TLSv1.1, except for on the Python module.
* Add support for verifying remote server certificate subject against the
remote hostname.
* Add mosquitto_reconnect_async() support and make asynchronous connections
truely asynchronous rather than simply deferred. DNS lookups are still
blocking, so asynchronous connections require an IP address instead of
hostname.
* Allow control of reconnection timeouts in mosquitto_loop_forever() and after
mosquitto_loop_start() by using mosquitto_reconnect_delay_set().
* Fix building on Android NDK.
* Re-raise unhandled errors in Python so as not to provide confusing error
messages later on.
* Python module supports IPv6 connections.
* mosquitto_sub_topic_tokenise() was behaving incorrectly if the last topic
hierarchy had only a single character. This has been fixed. Closes bug
#1163348.
* Fix possible crash after disconnects when using the threaded interface with
TLS.
* Allow build/install without Python. Closes bug #1174972.
* Add support for binding connection to a local interface.
* Implement maximum inflight messages handling.
* Fix Python client not handling `will_payload==None`.
* Fix potential memory leak when setting username/password.
* Fix handling of QoS 2 messages on reconnect.
* Improve handling of mosquitto_disconnect() with threaded mode.
# Clients
* Add support for TLSv1.2 and TLSv1.1.
* Sub client can now suppress printing of messages with the retain bit set.
* Add support for binding connection to a local interface.
* Implement maximum inflight messages handling for the pub client.
[download page]: /download