1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
|
0.15 - 20120205
===============
- Add support for $SYS/broker/clients/maximum and $SYS/broker/clients/active
topics.
- Add support for $SYS messages/byte per second received/sent topics.
- Updated mosquitto man page - $SYS hierarchy and signal support were out of
date.
- Auto generated pub/sub client ids now include the hostname.
- Tool for dumping persistent DB contents is available in src/db_dump. It isn't
installed by default.
- Enforce topic length checks in client library.
- Implement "once" and "lazy" bridge start types.
- Add new return type MOSQ_ERR_ERRNO to indicate that the errno variable should
be checked for the real error code.
- Add support for connection_messages config option.
- mosquitto_sub will now refuse to run if the -c option (disable clean session)
is given and no client id is provided.
- mosquitto_pub now gives more useful error messages on invalid input or other
error conditions.
- Fix Python will_set() true/True typo.
- Fix messages to topic "a/b" incorrectly matching on a subscription "a" if
another subscription "a/#" exists.
0.14.4 - 20120106
=================
- Fix local bridge notification messages.
- Fix return values for more internal library calls.
- Fix incorrect out of memory checks in library and broker.
- Never time out local bridge connections.
0.14.3 - 20111210
=================
- Fix potential crash when client connects with an invalid CONNECT packet.
- Fix incorrect invalid socket comparison on Windows.
- Server shouldn't crash when a message is published to foo/ when a
subscription to foo/# exists (bug #901697).
- SO_REUSEADDR doesn't work the same on Windows, so don't use it.
- Cygwin builds now support Windows service features.
- Fix $SYS/broker/bytes/sent reporting.
0.14.2 - 20111123
=================
- Add uninstall target for libs.
- Don't try to write packet whilst in a callback.
0.14.1 - 20111117
=================
- Fix Python sytax errors (bug #891673).
0.14 - 20111116
===============
- Add support for matching ACLs based on client id and username.
- Add a Windows installer file (NSIS based).
- Add native support for running the broker as a Windows service. This is the
default when installed using the new installer.
- Fix client count for listeners. When clients disconnect, decrement the
count. Allow max_connections to work again.
- Attempt to send all packets immediately upon being queued. This will result
in more immediate network communication in many cases.
- Log IP address when reporting CONNACK packets if the client id isn't yet
known.
- Fix payload length calculation in python will_set function.
- Fix Python publish and will_set functions for payload=None.
- Fix keepalive value being lost when reconnecting a client (bug #880863).
- Persistence file writing now uses portable file functions, so the Cygwin
broker build should no longer be necessary.
- Duplicate code between the client and broker side has been reduced.
- Queued messages for clients reconnecting with clean_session=false set were
not being sent until the next message for that client was received. This has
been fixed (bug #890724).
- Fix subscriptions to # incorrectly matching against topics beginning with /
0.13 - 20110920
===============
- Implement bridge state notification messages.
- Save client last used mid in persistent database (DB version number bumped).
- Expose message id in Python MosquittoMessage.
- It is now possible to set the topic QoS level for bridges.
- Python MosquittoMessage payload parameter is now a Python string, not a
ctypes object which makes it much easier to use.
- Fix queueing of messages for disconnected clients. The max_queued_messages
option is now obeyed.
- C++ library is now in its own namespace, mosquittopp.
- Add support for adding log message timestamps in the broker.
- Fix missing mosquitto_username_pw_set() python binding.
- Fix keepalive timeout for reconnecting non clean-session clients. Prevents
immediate disconnection on reconnection.
- Fix subscription wildcard matching - a subscription of +/+ will now match
against /foo
- Fix subscription wildcard matching - a subscription of foo/# will now match
against foo
- When restoring persistent database, clients should be set to non
clean-session or their subscriptions will be immediately removed.
- Fix SUBACK payload for multiple topic subscriptions.
- Don't send retained messages when a client subscribes to a topic it is
already subscribed to.
0.12 - 20110725
===============
- Reload (most) configuration on SIGHUP.
- Memory tracking is no longer compiled in the client library.
- Add --help option to mosquitto to display usage.
- Add --id-prefix option to clients to allow easier use with brokers that are
using the clientid_prefix option.
- Fix compilation on QNX.
- Add -P as a synonym argument for --pw in the clients.
- Fix python MosquittoMessage payload parameter. This is now returned as a
pointer to an array of c_uint8 values so binary data is handled correctly.
If a string is needed, use msg.payload_str
- Fix memory leaks on client authentication.
- If password_file is not defined then clients can now connect even if they
use a username/password.
- Add mosquitto_reconnect() to the client library.
- Add option for compiling with liberal protocol compliance support (enabled
by default).
- Fix problems with clients reconnecting and old messages remaining in the
message store.
- Display both ip and client id in the log message when a client connects.
Change the socket connection message to make it more obvious that it is just
a socket connection being made (bug #801135).
- Fix retained message delivery where a subscription contains a +.
- Be more lenient when reloading persistent database to reduce errors with
empty retained messages.
0.11.3 - 20110707
=================
- Don't complain and quit if persistence_file option is given (bug #802423).
- Initialise listeners correctly when clients with duplicate client ids
connect. Bug #801678.
- Memory tracking is now disabled for Symbian builds due to lack of malloc.h.
- Fix memory tracking compilation for kFreeBSD.
- Python callbacks can now be used with class member functions.
- Fix persistent database writing of client message chunks which caused
errors when restoring (bug #798164).
0.11.2 - 20110626
=================
- Don't free contexts in mqtt3_context_disconnect() (bug #799688 / #801678).
- Only free will if present when freeing a client context.
0.11.1 - 20110620
=================
- Fix buffer overrun when checking for + and # in topics (bug #799688).
- Pub client now quits if publish fails.
0.11 - 20110619
===============
- 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).
0.10.2 - 20110106
=================
- 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).
0.10.1 - 20110512
=================
- Fix Windows compilation.
- Fix mosquitto.py 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).
0.10 - 20110429
===============
- 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.
0.9.3 - 20110310
================
- 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 mosquitto.py compatible with Python <2.6.
- Fix mosquitto.h header includes for Windows.
0.9.2 - 20110208
================
- Only send a single DISCONNECT command when using -l in the pub client.
- Set QoS=1 on PUBREL commands to meet protocol spec.
- Don't leak sockets on connection failure in the library.
- Install man pages when building under cmake.
- Fix crash bug on malformed CONNECT message.
- Clients are now rejected if their socket peer name cannot be obtained on
connection.
- Fix a number of potential problems caused when a client with a duplicate id
connects.
- Install mosquitto.conf under cmake.
0.9.1 - 20101203
================
- Add missing code for parsing the "bind_address" configuration option.
- Fix missing include when compiling with tcp-wrappers support.
- Add linker version script for C library to control exported functions.
0.9 - 20101114
==============
- Client and message data is now stored in memory with custom routines rather
than a sqlite database. This removes the dependencies on sqlite, pcre and
sqlite3-pcre. It also means that the persistent database format has had to
be reimplemented in a custom format. Optional support for importing old
sqlite databases is provided.
- Added IPv6 support for mosquitto and the clients.
- Provide username and password support for the clients and client libraries.
This is part of the new MQTT v3.1 spec.
- The broker supports the username and password connection flags, but will not
do anything with the username and password.
- Python callback functions now optionally take an extra argument which will
return the user object passed to the Mosquitto() constructor, or the calling
python object itself if nothing was given to Mosquitto().
- Remove the mosquitto command line option "-i interface".
- Remove the mosquitto.conf "interface" variable.
- Add support for the listener config variable (replaces the interface
variable)
- Add support for the bind_address config variable.
- Change the port config variable behaviour to match that of rsmb (applies to
the default listener only, can be given just once).
- Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
timeouts correctly. Fixes bug #598290.
- Set retain flag correctly for outgoing messages. It should only be set for
messages sent in response to a subscribe command (ie. stale data).
- Fix bug in returning correct CONNACK result to on_connect client callback.
- Don't send client will if it is disconnected for exceeding its keepalive
timer.
- Fix client library unsubscribe function incorrectly sending a SUBSCRIBE
command when it should be UNSUBSCRIBE.
- Fix max_inflight_messages and max_queued_messages operation. These
parameters now apply only to QoS 1 and 2 messages and are used regardless of
the client connection state.
- mosquitto.conf now installed to /etc/mosquitto/mosquitto.conf instead of
/etc/mosquitto.conf. The /etc/mosquitto/ directory will be used for password
and access control files in the future.
- Give the compile time option of using 32-bit integers for the database IDs
instead of 64-bit integers. This is useful where htobe64()/be64toh() are not
available or for embedded systems for example.
- The DUP bit is now set correctly when resending PUBREL messages.
- A port to Windows native has been partially completed. This currently drops a
number of features, including the ability to change configuration parameters
and persistent storage.
0.8.3 - 20101004
================
- Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
timeouts correctly. Fixes bug #598290. (backported from future 0.9 code)
0.8.2 - 20100815
================
- Fix default loop() timeout value in mosquitto.py. Previous value was 0,
causing high cpu load.
- Fix message handling problem in client library when more than one message was
in the client queue.
- Fix the logic used to determine whether a QoS>0 message needs to be retried.
- Fix the Python sub.py example so that it quits on error.
0.8.1 - 20100812
================
- Improve python interface
- Fix incorrect return value from message delete function
- Use logging function to print error messages in clients.
- Fix python installation script DESTDIR.
- Fix library destination path for 64-bit machines.
0.8 - 20100807
==============
- Topics starting with a / are treated as distinct to those not starting with
a /. For example, /topic/path is different to topic/path. This matches the
behaviour of rsmb.
- Correctly calculate the will QoS on a new client connection (bug #597451).
- Add "addresses" configuration file variable as an alias of "address", for
better rsmb compatibility.
- Bridge clean_session setting is now false, to give more sensible behaviour
and be more compatible with rsmb.
- Add cleansession variable for configuring bridges.
- Add keepalive_interval variable for bridges.
- Remove default topic subscription for mosquitto_sub because the old
behaviour was too confusing.
- Added a C client library, which the pub and sub clients now use.
- Added a C++ client library (bound to the C library).
- Added a Python client library (bound to the C library).
- Added CMake build scripts to allow the library and clients (not the broker)
to be compiled natively on Windows.
0.7 - 20100615
==============
- mosquitto_pub can now send null (zero length) messages.
- Don't store QoS=0 messages for disconnected clients with subscriptions of
QoS>0.
- accept() all available sockets when new clients are connecting, rather than
just one.
- Add option to print debug messages in pub and sub clients.
- hg revision is now exported via $SYS/broker/changeset
- Send Will when client exceeds keepalive timer and is disconnected.
- Check to see if a client has a will before sending it.
- Correctly deal with clients connecting with the same id multiple times.
- Add compile time option to disable heap memory tracking.
- Use poll() instead of select() to allow >1024 clients.
- Implement max_connections.
- Run VACUUM on in-memory database on receiving SIGUSR2.
- Fix bridge keepalive timeouts and reconnects.
- Don't attempt to drop root privileges when running on Windows as this isn't
well supported (bug #586231).
0.6.1 - 20100506
================
- Fix DB auto upgrade for messages table.
0.6 - 20100505
==============
- Basic support for connecting multiple MQTT brokers together (bridging).
- mosquitto_sub can now subscribe to multiple topics (limited to a global QoS).
- mosquitto_pub can now send a file as a message.
- mosquitto_pub can now read all of stdin and send it as a message.
- mosquitto_pub can now read stdin and send each line as a message.
- mosquitto will now correctly run VACUUM on the persistent database on exit.
- Implement a more efficient database design, so that only one copy of each
message is held in the database, rather than one per subscribed client.
- Add the store_cleanup_interval config option for dealing with the internal
message store.
- Add support for disabling "clean session" for the sub client.
- Add support for automatic upgrading of the mosquitto DB from v1 to v2.
- Add persistence_file config option to allow changing the filename of the
persistence database. This allows multiple mosquitto DBs to be stored in the
same location whilst keeping persistence_location compatible with rsmb.
- Don't store QoS=0 messages for disconnected clients. Fixes bug #572608. This
wasn't correctly fixed in version 0.5.
- Don't disconnect clients if they send a PUBLISH with zero length payload
(bug #573610).
- If a retained message is received with a zero length payload, the retained
message for that topic is deleted.
- Send through zero length messages.
- Produce a warning on unsupported rsmb options instead of quitting.
- Describe clean session flag in the mqtt man page.
- Implement the max_inflight_messages and max_queued_messages features in the
broker.
0.5.4 - 20100311
================
- Fix memory allocation in mqtt3_fix_sub_topic() (bug #531861).
- Remove accidental limit of 100 client connections.
- Fix mosquitto_pub handling of messages with QoS>0 (bug #537061).
0.5.3 - 20100303
================
- Will messages are now only sent when a client disconnects unexpectedly.
- Fix all incoming topics/subscriptions that start with a / or contain
multiple / in a row (//).
- Do actually disconnect client when it sends an empty subscription/topic string.
- Add missing $SYS/broker/clients/total to man page.
0.5.2 - 20100302
================
- Always update last backup time, so that the backup doesn't run every time
through the main loop once autosave_interval has been reached.
- Report $SYS/broker/uptime in the same format as rsmb.
- Make mandatory options obvious in usage output and man page of mosquitto_pub.
Fixes bug #529990.
- Treat subscriptions with a trailing slash correctly. This should fix bugs
#530369 and #530099.
0.5.1 - 20100227
================
- Must daemonise before pid file is written.
0.5 - 20100227
==============
- No longer store QoS=0 messages for disconnected clients that do not have
clean start set.
- Rename msg_timeout option to retry_interval for better rsmb compatibility.
- Change persistence behaviour. The database is now stored in memory even if
persistence is enabled. It is written to disk when mosquitto exits and also at
periodic intervals as defined by the new autosave_interval option.
- The writing of the persistence database may be forced by sending mosquitto
the SIGUSR1 signal.
- Clients that do not send CONNECT as their first command are now
disconnected.
- Boolean configuration values may now be specified with true/false as well as
1/0.
- Log message on CONNECT with invalid protocol or protocol version.
- Default sqlite3-pcre path on Linux is now /usr/lib/sqlite3/pcre.so to match
future sqlite3-pcre packages.
- Add mosquitto_sub and mosquitto_pub, simple clients for subscribe/publish.
- Add man pages for clients.
- Add general man page on mqtt.
- Root privileges are now dropped only after attempting to write a pid file
(if configured). This means that the pid file can be written to /var/run/
directly and should fix bug #523183.
0.4.2 - 20100203
================
- Fix segfault on client connect with invalid protocol name/version.
0.4.1 - 20100112
===============
- Fix regex used for finding retained messages to send on new subscription.
0.4 - 20100105
==============
- Added support for wildcard subscriptions using + and #.
- All network operations are now non-blocking and can cope with partial
packets, meaning that networking should be a lot more reliable.
- Total messsages/bytes sent/received are now available in $SYS.
- Improved logging information - use client ip address and id instead of
socket number.
- Broker build timestamp is available in $SYS.
- Keepalive==0 is now correctly treated as "never disconnect".
- Fixed manpage installation.
- Fixed incorrect $SYS hierarchy locations in documentation and code.
- Debug type log messages are no longer sent to "topics".
- Default logging destination no longer includes "topics" to prevent possible
error logging to the db before it is initialised.
- Periodic $SYS messages can now be disabled.
- stdout and stderr are flushed when logging to them to give more timely
updates.
- dup is now set correctly when resending messages.
- Database format bumped due to topic column naming fix.
0.3 - 20091217
==============
- The port option in the configuration file and --port command line argument
may now be given any number of times to make mosquitto listen on multiple
sockets.
- Add new config file and command line option "interface" to specify an
interface to listen on, rather than all interfaces.
- Added host access control through tcp-wrappers support.
- Set SO_REUSEADDR on the listening socket so restart is much quicker.
- Added support for tracking current heap memory usage - this is published on
the topic "$SYS/broker/heap/current size"
- Added code for logging to stderr, stdout, syslog and topics.
- Added logging to numerous places - still plenty of scope for more.
0.2 - 20091204
==============
- Replaced the command line option --foreground with --daemon, swapping the
default behaviour.
- Added the command line option --config-file, to specify a config file to
load. If this is not given, no config file is load and the default options
are used.
- Added the command line option --port for specifying the port to listen on.
This overrides values in the config file.
- Don't use persistence by default.
- Default behaviour is now more sane when run by a normal user with no command
line options (combination of above changes).
- Added option user to config file, defaulting to a value of mosquitto. If
this value isn't blank and mosquitto is started by root, then it will drop
privileges by changing to the user and its primary group. This replaces the
current behaviour of refusing to start if run by root.
- Fix non-persistent mode, which would never work in the previous release.
- Added information on default values of msg_timeout and sys_interval to the
mosquitto.conf man page. (closes bug #492045).
|