UNPKG

47.9 kBPlain TextView Raw
11.3.1 - 20140324
2================
3
4Broker:
5- Prevent possible crash on client reconnect. Closes bug #1294108.
6- Don't accept zero length unsubscription strings (MQTT v3.1.1 fix)
7- Don't accept QoS 3 (MQTT v3.1.1 fix)
8- Don't disconnect clients immediately on HUP to give chance for all data to
9 be read.
10- Reject invalid un/subscriptions e.g. foo/+bar #/bar.
11- Take more care not to disconnect clients that are sending large messages.
12
13Client library:
14- Fix socketpair code on the Mac.
15- Fix compilation for WITH_THREADING=no.
16- Break out of select() when calling mosquitto_loop_stop().
17- Reject invalid un/subscriptions e.g. foo/+bar #/bar.
18
19Clients:
20- Fix keepalive value on mosquitto_pub.
21- Fix possibility of mosquitto_pub not exiting after sending messages when
22 using -l.
23
241.3 - 20140316
25==============
26
27Broker:
28- The broker no longer ignores the auth_plugin_init() return value.
29- Accept SSLv2/SSLv3 HELLOs when using TLSv1, whilst keeping SSLv2 and SSLv3
30 disabled. This increases client compatibility without sacrificing security.
31- The $SYS tree can now be disabled at runtime as well as at compile time.
32- When remapping bridged topics, only check for matches when the message
33 direction is correct. This allows two identical topics to be remapped
34 differently for both in and out.
35- Change "$SYS/broker/heap/current size" to "$SYS/broker/heap/current" for
36 easier parsing.
37- Change "$SYS/broker/heap/maximum size" to "$SYS/broker/heap/maximum" for
38 easier parsing.
39- Topics are no longer normalised from e.g a///topic to a/topic. This matches
40 the behaviour as clarified by the Oasis MQTT spec. This will lead to
41 unexpected behaviour if you were using topics of this form.
42- Log when outgoing messages for a client begin to drop off the end of the
43 queue.
44- Bridge clients are recognised as bridges even after reloading from
45 persistence.
46- Basic support for MQTT v3.1.1. This does not include being able to bridge to
47 an MQTT v3.1.1 broker.
48- Username is displayed in log if present when a client connects.
49- Support for 0 length client ids (v3.1.1 only) that result in automatically
50 generated client ids on the broker (see option allow_zero_length_clientid).
51- Ability to set the prefix of automatically generated client ids (see option
52 auto_id_prefix).
53- Add support for TLS session resumption.
54- When using TLS, the server now chooses the cipher to use when negotiating
55 with the client.
56- Weak TLS ciphers are now disabled by default.
57
58Client library:
59- Fix support for Python 2.6, 3.0, 3.1.
60- Add support for un/subscribing to multiple topics at once in un/subscribe().
61- Clients now close their socket after sending DISCONNECT.
62- Python client now contains its version number.
63- C library mosquitto_want_write() now supports TLS clients.
64- Fix possible memory leak in C/C++ library when communicating with
65 a broker that doesn't follow the spec.
66- Return strerror() through mosquitto_strerror() to make error printing
67 easier.
68- Topics are no longer normalised from e.g a///topic to a/topic. This matches
69 the behaviour as clarified by the Oasis MQTT spec. This will lead to
70 unexpected behaviour if you were using topics of this form.
71- Add support for SRV lookups.
72- Break out of select() on publish(), subscribe() etc. when using the threaded
73 interface. Fixes bug #1270062.
74- Handle incoming and outgoing messages separately. Fixes bug #1263172.
75- Don't terminate threads on mosquitto_destroy() when a client is not using
76 the threaded interface but does use their own thread. Fixes bug #1291473.
77
78Clients:
79- Add --ciphers to allow specifying which TLS ciphers to support.
80- Add support for SRV lookups.
81- Add -N to sub client to suppress printing of EOL after the payload.
82- Add -T to sub client to suppress printing of a topic hierarchy.
83
841.2.3 - 20131202
85================
86
87Broker:
88- Don't always attempt to call read() for SSL clients, irrespective of whether
89 they were ready to read or not. Reduces syscalls significantly.
90- Possible memory leak fixes.
91- Further fix for bug #1226040: multiple retained messages being delivered for
92 subscriptions ending in #.
93- Fix bridge reconnections when using multiple bridge addresses.
94
95Client library:
96- Fix possible memory leak in C/C++ library when communicating with
97 a broker that doesn't follow the spec.
98- Block in Python loop_stop() until all messages are sent, as the
99 documentation states should happen.
100- Fix for asynchronous connections on Windows. Closes bug #1249202.
101- Module version is now available in mosquitto.py.
102
103Clients:
104- mosquitto_sub now uses fwrite() instead of printf() to output messages, so
105 messages with NULL characters aren't truncated.
106
1071.2.2 - 20131021
108================
109
110Broker:
111- Fix compliance with max_inflight_messages when a non-clean session client
112 reconnects. Closes one of the issues on bug #1237389.
113
114Client library:
115- Fix incorrect inflight message accounting, which caused messages to go
116 unsent. Partial fix for bug #1237351.
117- Fix potential memory corruption when sending QoS>0 messages at a high rate
118 using the threaded interface. Further fix for #1237351.
119- Fix incorrect delay scaling when exponential_backoff=true in
120 mosquitto_reconnect_delay_set().
121- Some pep8 fixes for Python.
122
1231.2.1 - 20130918
124================
125
126Broker:
127- The broker no longer ignores the auth_plugin_init() return value. Closes
128 bug #1215084.
129- Use RTLD_GLOBAL when opening authentication plugins on posix systems. Fixes
130 resolving of symbols in libraries used by authentication plugins.
131- Add/fix some config documentation.
132- Fix ACLs for topics with $SYS.
133- Clients loaded from the persistence file on startup were not being added to
134 the client hash, causing subtle problems when the client reconnected,
135 including ACLs failing. This has been fixed.
136- Add note to mosquitto-tls man page stating that certificates need to be
137 unique. Closes bug #1221285.
138- Fix incorrect retained message delivery when using wildcard subs in some
139 circumstances. Fixes bug #1226040.
140
141Client library:
142- Fix support for Python 2.6, 3.0, 3.1.
143- Fix TLS subjectAltName verification and segfaults.
144- Handle EAGAIN in Python on Windows. Closes bug #1220004.
145- Fix compilation when using WITH_TLS=no.
146- Don't fail reconnecting in Python when broker is temporarily unavailable.
147
1481.2 - 20130708
149==============
150
151Broker:
152- Replace O(n) username lookup on CONNECT with a roughly O(1) hashtable version.
153- It is now possible to disable $SYS at compile time.
154- Add dropped publish messages to load tree in $SYS. Closes bug #1183318.
155- Add support for logging SUBSCRIBE/UNSUBSCRIBE events.
156- Add "log_dest file" logging support.
157- Auth plugin ACL check function now passes the client id as well as username
158 and password.
159- The queue_qos0_messages option wasn't working correctly, this has now been
160 fixed. Closes bug #1125200.
161- Don't drop all messages for disconnected durable clients when
162 max_queued_messages=0.
163- Add support for "log_type all".
164- Add support for "-v" option on the command line to provide the equivalent of
165 "log_type all" without needing a config file.
166- Add the "upgrade_outgoing_qos" option, a non-standard feature.
167- Persistence data is now written to a temporary file which is atomically
168 renamed on completion, so a crash during writing will not produce a corrupt
169 file.
170- mosquitto.conf is now installed as mosquitto.conf.example
171- Configuration file errors are now reported with filename and line number.
172- The broker now uses a monotonic clock if available, to avoid changes in time
173 causing client disconnections or message retries.
174- Clean session and keepalive status are now display the log when a client
175 connects.
176- Add support for TLSv1.2 and TLSv1.1.
177- Clients that connect with zero length will topics are now rejected.
178- Add the ability to set a maximum allowed PUBLISH payload size.
179- Fix an ACL with topic "#" incorrectly granting access to $SYS.
180- Fix retained messages incorrectly being set on wildcard topics, leading to
181 duplicate retained messages being sent on subscription. Closes bug #1116233.
182- Don't discard listener values when no "port" option given. Closes bug
183 #1131406.
184- Client password check was always failing when security was being reapplied
185 after a config reload. This meant that all clients were being disconnected.
186 This has been fixed.
187- Fix build when WITH_TLS=no. Closes bug #1174971.
188- Fix single outgoing packets not being sent in a timely fashion if they were
189 not sent in one call to write(). Closes bug #1176796.
190- Fix remapping of messages for clients connected to a listener with
191 mount_point set. Closes bug #1180765.
192- Fix duplicate retained messages being sent for some wildcard patterns.
193- If a client connects with a will topic to which they do not have write
194 access, they are now disconnected with CONNACK "not authorised".
195- Fix retained messages on topic foo being incorrectly delivered to
196 subscriptions of /#
197- Fix handling of SSL errors on SSL_accept().
198- Fix handling of QoS 2 messages on client reconnect.
199- Drop privileges now sets supplementary groups correctly.
200- Fix load reporting interval (is now 60s).
201- Be strict with malformed PUBLISH packets - clients are now disconnected
202 rather than the packet discarded. This goes inline with future OASIS spec
203 changes and makes other changes more straightforward.
204- Process incoming messages denied by ACL properly so that clients don't keep
205 resending them.
206
207- Add support for round_robin bridge option.
208- Add bridge support for verifying remote server certificate subject against
209 the remote hostname.
210- Fix problem with out of order calls to free() when restarting a lazy bridge.
211- The broker now attempts to resolve bind_address and bridge addresses
212 immediately when parsing the config file in order to detect invalid hosts.
213- Bridges now set their notification state before attempting to connect, so if
214 they fail to connect the state can still be seen.
215- Fix bridge notification payload length - no need to send a null byte.
216
217- mosquitto_passwd utility now reports errors more clearly.
218- Fix "mosquitto_passwd -U".
219
220Client library:
221- Add support for TLSv1.2 and TLSv1.1, except for on the Python module.
222- Add support for verifying remote server certificate subject against the
223 remote hostname.
224- Add mosquitto_reconnect_async() support and make asynchronous connections
225 truely asynchronous rather than simply deferred. DNS lookups are still
226 blocking, so asynchronous connections require an IP address instead of
227 hostname.
228- Allow control of reconnection timeouts in mosquitto_loop_forever() and after
229 mosquitto_loop_start() by using mosquitto_reconnect_delay_set().
230- Fix building on Android NDK.
231- Re-raise unhandled errors in Python so as not to provide confusing error
232 messages later on.
233- Python module supports IPv6 connections.
234- mosquitto_sub_topic_tokenise() was behaving incorrectly if the last topic
235 hierarchy had only a single character. This has been fixed. Closes bug
236 #1163348.
237- Fix possible crash after disconnects when using the threaded interface with
238 TLS.
239- Allow build/install without Python. Closes bug #1174972.
240- Add support for binding connection to a local interface.
241- Implement maximum inflight messages handling.
242- Fix Python client not handling will_payload==None.
243- Fix potential memory leak when setting username/password.
244- Fix handling of QoS 2 messages on reconnect.
245- Improve handling of mosquitto_disconnect() with threaded mode.
246
247
248Clients:
249- Add support for TLSv1.2 and TLSv1.1.
250- Sub client can now suppress printing of messages with the retain bit set.
251- Add support for binding connection to a local interface.
252- Implement maximum inflight messages handling for the pub client.
253
2541.1.3 - 20130211
255================
256
257Broker:
258- mosquitto_passwd utility now uses tmpfile() to generate its temporary data
259 storage file. It also creates a backup file that can be used to recover data
260 if an errors occur.
261
262Other:
263- Build script fixes to help packaging on Debian.
264
2651.1.2 - 20130130
266================
267
268Client library:
269- Fix tls_cert_reqs not being set to SSL_VERIFY_PEER by default. This meant
270 that clients were not verifying the server certificate when connecting over
271 TLS. This affects the C, C++ and Python libraries.
272
2731.1.1 - 20130116
274================
275
276Broker:
277- Fix crash on reload if using acl patterns.
278
279Client library:
280- Fix static C++ functions not being exported on Windows. Fixes bug #1098256.
281
2821.1 - 20121219
283==============
284
285Broker:
286- Add $SYS/broker/messages/dropped
287- Add $SYS/broker/clients/expired
288- Replace $SYS/broker/+/per second/+ with moving average versions published at
289 $SYS/broker/load/#
290- Add $SYS/broker/load/sockets/+ and $SYS/broker/load/connections/+
291- Documentation on password file format has been fixed.
292- Disable SSL compression. This reduces memory usage significantly and removes
293 the possibility of CRIME type attacks.
294- Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
295- Add allow_duplicate_messages option.
296- ACL files can now have comment lines with # as the first character.
297- Display message on startup about which config is being loaded.
298- Fix max_inflight_messages and max_queued_messages not being applied.
299- Fix documentation error in mosquitto.conf.
300- Ensure that QoS 2 queued messages are sent out in a timely manner.
301- Local bridges now act on clean_session correctly.
302- Local bridges with clean_session==false now remove unused subscriptions on
303 broker restart.
304- The $SYS/broker/heap/# messages now no longer include "bytes" as part of the
305 string for ease of use.
306
307Client library:
308- Free memory used by OpenSSL in mosquitto_lib_cleanup() where possible.
309- Change WebSocket subprotocol name to mqttv3.1 to make future changes easier
310 and for compatibility with other implementations.
311- mosquitto_loop_read() and mosquitto_loop_write() now handle errors
312 themselves rather than having mosquitto_loop() handle their errors. This
313 makes using them in a separate event loop more straightforward.
314- Add mosquitto_loop_forever() / loop_forever() function call to make simple
315 clients easier.
316- Disable SSL compression. This reduces memory usage significantly and removes
317 the possibility of CRIME type attacks.
318- Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
319- mosquitto_tls_set() will now return an error or raise an exception
320 immediately if the CA certificate or client certificate/key cannot be
321 accessed.
322- Fix potential memory leaks on connection failures.
323- Don't produce return error from mosquitto_loop() if a system call is
324 interrupted. This prevents disconnects/reconnects in threaded mode and
325 simplifies non-threaded client handling.
326- Ignore SIGPIPE to prevent unnecessary client quits in threaded mode.
327- Fix document error for mosquitto_message_retry_set().
328- Fix mosquitto_topic_matches_sub() for subscriptions with + as the final
329 character. Fixes bug #1085797.
330- Rename all "obj" parameters to "userdata" for consistency with other
331 libraries.
332- Reset errno before network read/write to ensure EAGAIN isn't mistakenly
333 returned.
334- The message queue length is now tracked and used to determine the maximum
335 number of packets to process at once. This removes the need for the
336 max_packets parameter which is now unused.
337- Fix incorrect error value in Python error_string() function. Fixes bug
338 #1086777.
339- Reset last message in/out timer in Python module when we send a PINGREQ.
340 Fixes too-early disconnects.
341
342Clients:
343- Clients now display their own version number and library version number in
344 their help messages.
345- Fix "mosquitto_pub -l -q 2" disconnecting before all messages were
346 transmitted.
347- Fix potential out-of-bounds array access with client ids. Fixes bug
348 #1083182.
349
350Other:
351- mosquitto_passwd can now convert password files with plain text files to
352 hashed versions.
353
3541.0.5 - 20121103
355================
356
357Broker:
358- Fix crash when the broker has use_identity_as_username set to true but a
359 client connects without a certificate.
360- mosquitto_passwd should only be installed if WITH_TLS=yes.
361
362Library:
363- Use symbolic errno values rather than numbers in Python module to avoid
364 cross platform issues (incorrect errno on Mac OS).
365
366Other:
367- Build script fixes for FreeBSD.
368
3691.0.4 - 20121017
370================
371
372Broker:
373- Deal with poll() POLLIN/POLLOUT before POLL[RD]HUP to correctly handle the
374 case where a client sends data and immediately closes its socket.
375
376Library:
377- Fix memory leak with messages of QoS=2. Fixes bug #1064981.
378- Fix potential thread synchronisation problem with outgoing packets in the
379 Python module. Fixes bug #1064977.
380
381Clients:
382- Fix "mosquitto_sub -l" incorrectly only sending one message per second.
383
3841.0.3 - 20120927
385================
386
387Broker:
388- Fix loading of psk files.
389- Don't return an error when reloading config if an ACL file isn't defined.
390 This was preventing psk files being reloaded.
391- Clarify meaning of $SYS/broker/clients/total in mosquitto(8) man page.
392- Clarify meaning of $SYS/broker/messages/stored in mosquitto(8) man page.
393- Fix non-retained message delivery when subscribing to #.
394- Fix retained message delivery for subs to foo/# with retained messages at
395 foo.
396- Include the filename in password/acl file loading errors.
397
398Library:
399- Fix possible AttributeError when self._sock == None in Python module.
400- Fix reconnecting after a timeout in Python module.
401- Fix reconnecting when there were outgoing packets in the queue in the Python
402 module.
403- Fix problem with mutex initialisation causing crashes on some Windows
404 installations.
405
4061.0.2 - 20120919
407================
408
409Broker:
410- If the broker was configured for persistence, a durable client had a
411 subscription to topics in $SYS/# and had messages in its queue when the
412 broker restarted, then the persistent database would have messages missing
413 and so the broker would not restart properly. This has been fixed.
414
415Library:
416- Fix threading problem on some systems.
417
418Tests:
419- Close socket after 08-ssl-connect-no-auth-wrong-ca.py test to prevent
420 subsequent tests having problems.
421
422Build scripts:
423- Install pskfile.example in CMake. Fixes bug #1037504.
424
425Other:
426- Fix db_dump parameter printing message store and sub chunks.
427
4281.0.1 - 20120815
429================
430
431Broker:
432- Fix default log_dest when running as a Windows service.
433
434Client library:
435- Fix incorrect parameters in Python on_log() callback call. Fixes bug
436 #1036818.
437
438Clients:
439- Clients now don't display TLS/TLS-PSK usage help if they don't support it.
440
441Build scripts:
442- Fix TLS-PSK support in the CMake build files.
443- Fix man page installation in the CMake build files.
444- Fix SYSCONFDIR in cmake on *nix when installing to /usr. Fixes bug #1036908.
445
446Documentation:
447- Fix mqtt/MQTT capitalisation in man pages.
448- Update compiling.txt.
449- Fix incorrect callback docs in mosquitto.py. Fixes bug #1036607.
450- Fix various doc typos and remove obsolete script. Fixes bug #1037088.
451
4521.0 - 20120814
453==============
454
455Broker:
456
457- Add SSL/TLS support.
458- Add TLS-PSK support, providing a simpler encryption method for constrained
459 devices.
460- Passwords are now salted+hashed if compiled with WITH_TLS (recommended).
461- Add mosquitto_passwd for handling password files.
462- Add $SYS/broker/publish/messages/{sent|received} to show the number of
463 PUBLISH messages sent/received.
464- Add $SYS/broker/publish/bytes/{sent|received} to show the number of
465 PUBLISH bytes sent/received.
466- Add reload parameter for security init/cleanup functions.
467- Add option for expiring disconnected persistent clients.
468- Add option for queueing of QoS 0 messages when persistent clients are
469 disconnected.
470- Enforce client id limits in the broker (only when WITH_STRICT_PROTOCOL is
471 defined).
472- Fix reloading of log configuration.
473- Add support for try_private config option for bridge connections.
474- Add support for autosave_on_changes config option.
475- Add support for include_dir config option.
476- Add support for topic remapping.
477- Usernames were being lost when a non clean-session client reconnected,
478 potentially causing problems with ACLs. This has been fixed.
479- Significant improvement to memory handling on Windows.
480- Bridges with outgoing topics will now set the retain flag correctly so that
481 messages will be retained on the remote broker.
482- Incoming bridge connections are now detected by checking if bit 8 of the
483 protocol version number is set. This requires support from the remote broker.
484- Add support for notification_topic option.
485- Add $SYS/broker/subscriptions/count and $SYS/broker/retained messages/count.
486- Add restart_timeout to control the amount of time an automatic bridge will
487 wait before reconnecting.
488- Overlapping subscriptions are now handled properly. Fixes bug #928538.
489- Fix reloading of persistence_file and persistence_location.
490- Fix broker crash on incorrect protocol number.
491- Fix missing COMPAT_ECONNRESET define on Windows.
492- Clients that had disconnected were not always being detected immediately on
493 Linux. This has been fixed.
494- Don't save $SYS messages to the on-disk persistent db. All $SYS messages
495 should be reconstructed on a restart. This means bridge connection
496 notifications will now be correct on a restart.
497- Fix reloading of bridge clients from the persistent db. This means that
498 outgoing bridged topics should always work.
499- Local bridges are now no longer restricted by local ACLs.
500- Discard publish messages with zero length topics.
501- Drop to "mosquitto" user even if no config file specified.
502- Don't incorrectly allow topic access if ACL patterns but no normal ACL rules
503 are defined.
504
505Client library:
506
507- Add SSL/TLS support.
508- Add TLS-PSK support, providing a simpler encryption method for constrained
509 devices.
510- Add javascript/websockets client library.
511- Add "struct mosquitto *mosq" parameter for all callbacks in the client
512 library. This is a binary incompatible change so the soversion of the
513 libraries has been incremented. The new parameter should make it easier to
514 use callbacks in practice.
515- Add mosquitto_want_write() for use when using own select() loop with
516 mosquitto_socket().
517- Add mosquitto_connect_async() to provide a non-blocking connect client call.
518- Add mosquitto_user_data_set() to allow user data pointer to be updated.
519- Add "int rc" parameter to disconnect callback to indicate whether disconnect
520 was unexpected or the result of calling mosquitto_disconnect().
521- Add mosquitto_strerror() for obtaining a string description of error numbers.
522- Add mosquitto_connack_string() for obtaining a string description of MQTT
523 connection results.
524- Add mosquitto_will_clear() and change mosquitto_will_set() to only set the
525 will.
526- Add mosquitto_sub_topic_tokenise() and mosquitto_sub_topic_tokens_free()
527 utility functions to tokenise a subscription/topic string into a string
528 array.
529- Add mosquitto_topic_matches_sub() to check whether a topic matches a
530 subscription.
531- Replaced mosquitto_log_init() with mosquitto_log_callback_set() to allow
532 clients to decide what to do with log messages.
533- Client will now disconnect itself from the broker if it doesn't receive a
534 PINGRESP in the keepalive period after sending a PINGREQ.
535- Client will now send a PINGREQ if it has not received a message from the
536 broker in keepalive seconds.
537- mosquitto_new() will now generate a random client id if the id parameter is
538 NULL.
539- Added max_packets to mosquitto_loop(), mosquitto_loop_read() and
540 mosquitto_loop_write() to control the maximum number of packets that are
541 handled per call.
542- Payload parameters are now void * instead of uint8_t *.
543- The clean_session parameter has been moved from mosquitto_connect() to
544 mosquitto_new() because it is a client parameter rather than a connection
545 parameter.
546- Functions now use int instead of uint*_t where possible.
547- mosquitto_new() now sets errno to indicate failure type.
548- Return MOSQ_ERR_INVAL on zero length topic.
549- Fix automatic client id generation on Windows.
550- mosquitto_loop_misq() can now return MOSQ_ERR_NO_CONN.
551- Compile static library as well as dynamic library with default makefiles.
552- Rename C++ namespace from mosquittopp to mosqpp to remove ambiguity.
553- C++ lib_init(), lib_version() and lib_cleanup() are now in the mosqpp
554 namespace directly, not mosquittopp class members.
555- The Python library is now written in pure Python and so no longer depends on
556 libmosquitto.
557- The Python library includes SSL/TLS support.
558- The Python library should now be compatible with Python 3.
559
560Other:
561
562- Fix db_dump reading of retained messages.
563- Add example of logging all messages to mysql.
564- Add C++ client example.
565- Fix potential buffer overflow in pub/sub clients.
566- Add "make binary" target that doesn't make documents.
567- Add "--help" arguments to pub/sub clients.
568- Fix building on Solaris.
569
5700.15 - 20120205
571===============
572
573- Add support for $SYS/broker/clients/maximum and $SYS/broker/clients/active
574 topics.
575- Add support for $SYS messages/byte per second received/sent topics.
576- Updated mosquitto man page - $SYS hierarchy and signal support were out of
577 date.
578- Auto generated pub/sub client ids now include the hostname.
579- Tool for dumping persistent DB contents is available in src/db_dump. It isn't
580 installed by default.
581- Enforce topic length checks in client library.
582- Implement "once" and "lazy" bridge start types.
583- Add new return type MOSQ_ERR_ERRNO to indicate that the errno variable should
584 be checked for the real error code.
585- Add support for connection_messages config option.
586- mosquitto_sub will now refuse to run if the -c option (disable clean session)
587 is given and no client id is provided.
588- mosquitto_pub now gives more useful error messages on invalid input or other
589 error conditions.
590- Fix Python will_set() true/True typo.
591- Fix messages to topic "a/b" incorrectly matching on a subscription "a" if
592 another subscription "a/#" exists.
593
5940.14.4 - 20120106
595=================
596
597- Fix local bridge notification messages.
598- Fix return values for more internal library calls.
599- Fix incorrect out of memory checks in library and broker.
600- Never time out local bridge connections.
601
6020.14.3 - 20111210
603=================
604
605- Fix potential crash when client connects with an invalid CONNECT packet.
606- Fix incorrect invalid socket comparison on Windows.
607- Server shouldn't crash when a message is published to foo/ when a
608 subscription to foo/# exists (bug #901697).
609- SO_REUSEADDR doesn't work the same on Windows, so don't use it.
610- Cygwin builds now support Windows service features.
611- Fix $SYS/broker/bytes/sent reporting.
612
6130.14.2 - 20111123
614=================
615
616- Add uninstall target for libs.
617- Don't try to write packet whilst in a callback.
618
6190.14.1 - 20111117
620=================
621
622- Fix Python sytax errors (bug #891673).
623
6240.14 - 20111116
625===============
626
627- Add support for matching ACLs based on client id and username.
628- Add a Windows installer file (NSIS based).
629- Add native support for running the broker as a Windows service. This is the
630 default when installed using the new installer.
631- Fix client count for listeners. When clients disconnect, decrement the
632 count. Allow max_connections to work again.
633- Attempt to send all packets immediately upon being queued. This will result
634 in more immediate network communication in many cases.
635- Log IP address when reporting CONNACK packets if the client id isn't yet
636 known.
637- Fix payload length calculation in python will_set function.
638- Fix Python publish and will_set functions for payload=None.
639- Fix keepalive value being lost when reconnecting a client (bug #880863).
640- Persistence file writing now uses portable file functions, so the Cygwin
641 broker build should no longer be necessary.
642- Duplicate code between the client and broker side has been reduced.
643- Queued messages for clients reconnecting with clean_session=false set were
644 not being sent until the next message for that client was received. This has
645 been fixed (bug #890724).
646- Fix subscriptions to # incorrectly matching against topics beginning with /
647
6480.13 - 20110920
649===============
650
651- Implement bridge state notification messages.
652- Save client last used mid in persistent database (DB version number bumped).
653- Expose message id in Python MosquittoMessage.
654- It is now possible to set the topic QoS level for bridges.
655- Python MosquittoMessage payload parameter is now a Python string, not a
656 ctypes object which makes it much easier to use.
657- Fix queueing of messages for disconnected clients. The max_queued_messages
658 option is now obeyed.
659- C++ library is now in its own namespace, mosquittopp.
660- Add support for adding log message timestamps in the broker.
661- Fix missing mosquitto_username_pw_set() python binding.
662- Fix keepalive timeout for reconnecting non clean-session clients. Prevents
663 immediate disconnection on reconnection.
664- Fix subscription wildcard matching - a subscription of +/+ will now match
665 against /foo
666- Fix subscription wildcard matching - a subscription of foo/# will now match
667 against foo
668- When restoring persistent database, clients should be set to non
669 clean-session or their subscriptions will be immediately removed.
670- Fix SUBACK payload for multiple topic subscriptions.
671- Don't send retained messages when a client subscribes to a topic it is
672 already subscribed to.
673
6740.12 - 20110725
675===============
676
677- Reload (most) configuration on SIGHUP.
678- Memory tracking is no longer compiled in the client library.
679- Add --help option to mosquitto to display usage.
680- Add --id-prefix option to clients to allow easier use with brokers that are
681 using the clientid_prefix option.
682- Fix compilation on QNX.
683- Add -P as a synonym argument for --pw in the clients.
684- Fix python MosquittoMessage payload parameter. This is now returned as a
685 pointer to an array of c_uint8 values so binary data is handled correctly.
686 If a string is needed, use msg.payload_str
687- Fix memory leaks on client authentication.
688- If password_file is not defined then clients can now connect even if they
689 use a username/password.
690- Add mosquitto_reconnect() to the client library.
691- Add option for compiling with liberal protocol compliance support (enabled
692 by default).
693- Fix problems with clients reconnecting and old messages remaining in the
694 message store.
695- Display both ip and client id in the log message when a client connects.
696 Change the socket connection message to make it more obvious that it is just
697 a socket connection being made (bug #801135).
698- Fix retained message delivery where a subscription contains a +.
699- Be more lenient when reloading persistent database to reduce errors with
700 empty retained messages.
701
7020.11.3 - 20110707
703=================
704
705- Don't complain and quit if persistence_file option is given (bug #802423).
706- Initialise listeners correctly when clients with duplicate client ids
707 connect. Bug #801678.
708- Memory tracking is now disabled for Symbian builds due to lack of malloc.h.
709- Fix memory tracking compilation for kFreeBSD.
710- Python callbacks can now be used with class member functions.
711- Fix persistent database writing of client message chunks which caused
712 errors when restoring (bug #798164).
713
7140.11.2 - 20110626
715=================
716
717- Don't free contexts in mqtt3_context_disconnect() (bug #799688 / #801678).
718- Only free will if present when freeing a client context.
719
7200.11.1 - 20110620
721=================
722
723- Fix buffer overrun when checking for + and # in topics (bug #799688).
724- Pub client now quits if publish fails.
725
7260.11 - 20110619
727===============
728
729- Removed all old sqlite code.
730- Remove client id limit in clients.
731- Implemented $SYS/broker/heap/maximum size
732- Implemented $SYS/broker/clients/inactive to show the number of disconnected
733 non-clean session clients.
734- $SYS/broker/heap/current size and maximum size messages now include "bytes"
735 to match rsmb message format.
736- Implemented the retained_persistence config file option - a synonym of the
737 "persistence" option.
738- Added security_external.c to broker source to make it easier for third
739 parties to add support for their existing username/password and ACL database
740 for security checks. See external_security_checks.txt.
741- $SYS messages are now only republished when their value changes.
742- Windows native broker now responds to command line arguments.
743- Simplify client disconnecting so wills gets sent in all cases (bug #792468).
744- Clients now have a --quiet option.
745- The on_disconnect() callback will always be called now, even if the client
746 has disconnected unexpectedly.
747- Always close persistent DB file after restoring.
748- Return error code when exiting the clients.
749- mosquitto_publish() now returns MOSQ_ERR_INVAL if the topic contains + or #
750- mosquitto now silently rejects published messages with + or # in the topic.
751- max_connections is now a per-listener setting instead of global.
752- Connection count is now reduced when clients disconnect (bug #797983).
753
7540.10.2 - 20110106
755=================
756
757- Don't abort when connecting if the first connection fails. This is important
758 on e.g. Windows 7, where IPV6 is offered as the first choice but may not be
759 available.
760- Deal with long logging messages properly (bug #785882).
761- Fix library compilation on Symbian - no pselect() available.
762- Don't stop processing subscriptions on received messages after a
763 subscription with # matches. (bug #791206).
764
7650.10.1 - 20110512
766=================
767
768- Fix Windows compilation.
769- Fix mosquitto.py on Windows - call lib init/cleanup.
770- Don't abort when connecting if given an unknown address type (assuming an
771 IPv4 or IPv6 address is given).
772
7730.10 - 20110429
774===============
775
776- Implement support for the password_file option and accompanying
777 authentication requirements in the broker.
778- Implement topic Access Control Lists.
779- mosquitto_will_set() and mosquitto_publish() now return
780 MOSQ_ERR_PAYLOAD_SIZE if the payload is too large (>268,435,455 bytes).
781- Bridge support can now be disabled at compile time.
782- Group together network writes for outgoing packets - don't send single byte
783 writes!
784- Add support for clientid_prefixes variable.
785- Add support for the clientid config variable for controlling bridge client
786 ids.
787- Remove 32-bit database ID support because htobe64() no longer used.
788- Multiple client subscriptions to the same topic result in only a single
789 subscription. Bug #744077.
790
7910.9.3 - 20110310
792================
793
794- Set retained message status for QoS 2 messages (bug #726535).
795- Only abort with an error when opening listening sockets if no address family
796 is available, rather than aborting when any address family is not available.
797- Don't clean queued messages when a non clean session client reconnects.
798- Make mosquitto.py compatible with Python <2.6.
799- Fix mosquitto.h header includes for Windows.
800
8010.9.2 - 20110208
802================
803
804- Only send a single DISCONNECT command when using -l in the pub client.
805- Set QoS=1 on PUBREL commands to meet protocol spec.
806- Don't leak sockets on connection failure in the library.
807- Install man pages when building under cmake.
808- Fix crash bug on malformed CONNECT message.
809- Clients are now rejected if their socket peer name cannot be obtained on
810 connection.
811- Fix a number of potential problems caused when a client with a duplicate id
812 connects.
813- Install mosquitto.conf under cmake.
814
8150.9.1 - 20101203
816================
817
818- Add missing code for parsing the "bind_address" configuration option.
819- Fix missing include when compiling with tcp-wrappers support.
820- Add linker version script for C library to control exported functions.
821
8220.9 - 20101114
823==============
824
825- Client and message data is now stored in memory with custom routines rather
826 than a sqlite database. This removes the dependencies on sqlite, pcre and
827 sqlite3-pcre. It also means that the persistent database format has had to
828 be reimplemented in a custom format. Optional support for importing old
829 sqlite databases is provided.
830- Added IPv6 support for mosquitto and the clients.
831- Provide username and password support for the clients and client libraries.
832 This is part of the new MQTT v3.1 spec.
833- The broker supports the username and password connection flags, but will not
834 do anything with the username and password.
835- Python callback functions now optionally take an extra argument which will
836 return the user object passed to the Mosquitto() constructor, or the calling
837 python object itself if nothing was given to Mosquitto().
838- Remove the mosquitto command line option "-i interface".
839- Remove the mosquitto.conf "interface" variable.
840- Add support for the listener config variable (replaces the interface
841 variable)
842- Add support for the bind_address config variable.
843- Change the port config variable behaviour to match that of rsmb (applies to
844 the default listener only, can be given just once).
845- Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
846 timeouts correctly. Fixes bug #598290.
847- Set retain flag correctly for outgoing messages. It should only be set for
848 messages sent in response to a subscribe command (ie. stale data).
849- Fix bug in returning correct CONNACK result to on_connect client callback.
850- Don't send client will if it is disconnected for exceeding its keepalive
851 timer.
852- Fix client library unsubscribe function incorrectly sending a SUBSCRIBE
853 command when it should be UNSUBSCRIBE.
854- Fix max_inflight_messages and max_queued_messages operation. These
855 parameters now apply only to QoS 1 and 2 messages and are used regardless of
856 the client connection state.
857- mosquitto.conf now installed to /etc/mosquitto/mosquitto.conf instead of
858 /etc/mosquitto.conf. The /etc/mosquitto/ directory will be used for password
859 and access control files in the future.
860- Give the compile time option of using 32-bit integers for the database IDs
861 instead of 64-bit integers. This is useful where htobe64()/be64toh() are not
862 available or for embedded systems for example.
863- The DUP bit is now set correctly when resending PUBREL messages.
864- A port to Windows native has been partially completed. This currently drops a
865 number of features, including the ability to change configuration parameters
866 and persistent storage.
867
8680.8.3 - 20101004
869================
870
871- Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
872 timeouts correctly. Fixes bug #598290. (backported from future 0.9 code)
873
8740.8.2 - 20100815
875================
876
877- Fix default loop() timeout value in mosquitto.py. Previous value was 0,
878 causing high cpu load.
879- Fix message handling problem in client library when more than one message was
880 in the client queue.
881- Fix the logic used to determine whether a QoS>0 message needs to be retried.
882- Fix the Python sub.py example so that it quits on error.
883
8840.8.1 - 20100812
885================
886
887- Improve python interface
888- Fix incorrect return value from message delete function
889- Use logging function to print error messages in clients.
890- Fix python installation script DESTDIR.
891- Fix library destination path for 64-bit machines.
892
8930.8 - 20100807
894==============
895
896- Topics starting with a / are treated as distinct to those not starting with
897 a /. For example, /topic/path is different to topic/path. This matches the
898 behaviour of rsmb.
899- Correctly calculate the will QoS on a new client connection (bug #597451).
900- Add "addresses" configuration file variable as an alias of "address", for
901 better rsmb compatibility.
902- Bridge clean_session setting is now false, to give more sensible behaviour
903 and be more compatible with rsmb.
904- Add cleansession variable for configuring bridges.
905- Add keepalive_interval variable for bridges.
906- Remove default topic subscription for mosquitto_sub because the old
907 behaviour was too confusing.
908- Added a C client library, which the pub and sub clients now use.
909- Added a C++ client library (bound to the C library).
910- Added a Python client library (bound to the C library).
911- Added CMake build scripts to allow the library and clients (not the broker)
912 to be compiled natively on Windows.
913
9140.7 - 20100615
915==============
916
917- mosquitto_pub can now send null (zero length) messages.
918- Don't store QoS=0 messages for disconnected clients with subscriptions of
919 QoS>0.
920- accept() all available sockets when new clients are connecting, rather than
921 just one.
922- Add option to print debug messages in pub and sub clients.
923- hg revision is now exported via $SYS/broker/changeset
924- Send Will when client exceeds keepalive timer and is disconnected.
925- Check to see if a client has a will before sending it.
926- Correctly deal with clients connecting with the same id multiple times.
927- Add compile time option to disable heap memory tracking.
928- Use poll() instead of select() to allow >1024 clients.
929- Implement max_connections.
930- Run VACUUM on in-memory database on receiving SIGUSR2.
931- Fix bridge keepalive timeouts and reconnects.
932- Don't attempt to drop root privileges when running on Windows as this isn't
933 well supported (bug #586231).
934
9350.6.1 - 20100506
936================
937
938- Fix DB auto upgrade for messages table.
939
9400.6 - 20100505
941==============
942
943- Basic support for connecting multiple MQTT brokers together (bridging).
944- mosquitto_sub can now subscribe to multiple topics (limited to a global QoS).
945- mosquitto_pub can now send a file as a message.
946- mosquitto_pub can now read all of stdin and send it as a message.
947- mosquitto_pub can now read stdin and send each line as a message.
948- mosquitto will now correctly run VACUUM on the persistent database on exit.
949- Implement a more efficient database design, so that only one copy of each
950 message is held in the database, rather than one per subscribed client.
951- Add the store_cleanup_interval config option for dealing with the internal
952 message store.
953- Add support for disabling "clean session" for the sub client.
954- Add support for automatic upgrading of the mosquitto DB from v1 to v2.
955- Add persistence_file config option to allow changing the filename of the
956 persistence database. This allows multiple mosquitto DBs to be stored in the
957 same location whilst keeping persistence_location compatible with rsmb.
958- Don't store QoS=0 messages for disconnected clients. Fixes bug #572608. This
959 wasn't correctly fixed in version 0.5.
960- Don't disconnect clients if they send a PUBLISH with zero length payload
961 (bug #573610).
962- If a retained message is received with a zero length payload, the retained
963 message for that topic is deleted.
964- Send through zero length messages.
965- Produce a warning on unsupported rsmb options instead of quitting.
966- Describe clean session flag in the mqtt man page.
967- Implement the max_inflight_messages and max_queued_messages features in the
968 broker.
969
9700.5.4 - 20100311
971================
972
973- Fix memory allocation in mqtt3_fix_sub_topic() (bug #531861).
974- Remove accidental limit of 100 client connections.
975- Fix mosquitto_pub handling of messages with QoS>0 (bug #537061).
976
9770.5.3 - 20100303
978================
979
980- Will messages are now only sent when a client disconnects unexpectedly.
981- Fix all incoming topics/subscriptions that start with a / or contain
982 multiple / in a row (//).
983- Do actually disconnect client when it sends an empty subscription/topic string.
984- Add missing $SYS/broker/clients/total to man page.
985
9860.5.2 - 20100302
987================
988
989- Always update last backup time, so that the backup doesn't run every time
990 through the main loop once autosave_interval has been reached.
991- Report $SYS/broker/uptime in the same format as rsmb.
992- Make mandatory options obvious in usage output and man page of mosquitto_pub.
993 Fixes bug #529990.
994- Treat subscriptions with a trailing slash correctly. This should fix bugs
995 #530369 and #530099.
996
9970.5.1 - 20100227
998================
999
1000- Must daemonise before pid file is written.
1001
10020.5 - 20100227
1003==============
1004
1005- No longer store QoS=0 messages for disconnected clients that do not have
1006 clean start set.
1007- Rename msg_timeout option to retry_interval for better rsmb compatibility.
1008- Change persistence behaviour. The database is now stored in memory even if
1009 persistence is enabled. It is written to disk when mosquitto exits and also at
1010 periodic intervals as defined by the new autosave_interval option.
1011- The writing of the persistence database may be forced by sending mosquitto
1012 the SIGUSR1 signal.
1013- Clients that do not send CONNECT as their first command are now
1014 disconnected.
1015- Boolean configuration values may now be specified with true/false as well as
1016 1/0.
1017- Log message on CONNECT with invalid protocol or protocol version.
1018- Default sqlite3-pcre path on Linux is now /usr/lib/sqlite3/pcre.so to match
1019 future sqlite3-pcre packages.
1020- Add mosquitto_sub and mosquitto_pub, simple clients for subscribe/publish.
1021- Add man pages for clients.
1022- Add general man page on mqtt.
1023- Root privileges are now dropped only after attempting to write a pid file
1024 (if configured). This means that the pid file can be written to /var/run/
1025 directly and should fix bug #523183.
1026
10270.4.2 - 20100203
1028================
1029
1030- Fix segfault on client connect with invalid protocol name/version.
1031
10320.4.1 - 20100112
1033===============
1034
1035- Fix regex used for finding retained messages to send on new subscription.
1036
10370.4 - 20100105
1038==============
1039
1040- Added support for wildcard subscriptions using + and #.
1041- All network operations are now non-blocking and can cope with partial
1042 packets, meaning that networking should be a lot more reliable.
1043- Total messsages/bytes sent/received are now available in $SYS.
1044- Improved logging information - use client ip address and id instead of
1045 socket number.
1046- Broker build timestamp is available in $SYS.
1047- Keepalive==0 is now correctly treated as "never disconnect".
1048- Fixed manpage installation.
1049- Fixed incorrect $SYS hierarchy locations in documentation and code.
1050- Debug type log messages are no longer sent to "topics".
1051- Default logging destination no longer includes "topics" to prevent possible
1052 error logging to the db before it is initialised.
1053- Periodic $SYS messages can now be disabled.
1054- stdout and stderr are flushed when logging to them to give more timely
1055 updates.
1056- dup is now set correctly when resending messages.
1057- Database format bumped due to topic column naming fix.
1058
10590.3 - 20091217
1060==============
1061
1062- The port option in the configuration file and --port command line argument
1063 may now be given any number of times to make mosquitto listen on multiple
1064 sockets.
1065- Add new config file and command line option "interface" to specify an
1066 interface to listen on, rather than all interfaces.
1067- Added host access control through tcp-wrappers support.
1068- Set SO_REUSEADDR on the listening socket so restart is much quicker.
1069- Added support for tracking current heap memory usage - this is published on
1070 the topic "$SYS/broker/heap/current size"
1071- Added code for logging to stderr, stdout, syslog and topics.
1072- Added logging to numerous places - still plenty of scope for more.
1073
10740.2 - 20091204
1075==============
1076
1077- Replaced the command line option --foreground with --daemon, swapping the
1078 default behaviour.
1079- Added the command line option --config-file, to specify a config file to
1080 load. If this is not given, no config file is load and the default options
1081 are used.
1082- Added the command line option --port for specifying the port to listen on.
1083 This overrides values in the config file.
1084- Don't use persistence by default.
1085- Default behaviour is now more sane when run by a normal user with no command
1086 line options (combination of above changes).
1087- Added option user to config file, defaulting to a value of mosquitto. If
1088 this value isn't blank and mosquitto is started by root, then it will drop
1089 privileges by changing to the user and its primary group. This replaces the
1090 current behaviour of refusing to start if run by root.
1091- Fix non-persistent mode, which would never work in the previous release.
1092- Added information on default values of msg_timeout and sys_interval to the
1093 mosquitto.conf man page. (closes bug #492045).