Commit Graph

837 Commits (release/2.0)

Author SHA1 Message Date
Roger A. Light 1d66d3e443 Fix bridge topic remapping when using "" as the topic.
Closes #1749. Thanks to cieslarchristian.
5 years ago
Roger A. Light 5a56f066a8 Change systemd unit files to create /var/log/mosquitto
This happens before starting the broker.

Also don't quit with an error if opening the log file isn't possible.

Closes #821.
5 years ago
Roger A. Light abb31ffe8d Fix broker refusing to start if only websockets listeners were defined.
Closes #1740. Thanks to OkenKhuman.
5 years ago
Roger A. Light f46187d5e5 Add `mosquitto_client_protocol_version()` function.
This can be used by plugins to determine which version of MQTT a client
has connected with.
5 years ago
Roger Light 318dead6bf Function to allow plugins to publish messages. 5 years ago
Roger A. Light 2e32634a95 DLT logging is now configurable at runtime with `log_dest dlt`.
Closes #1735. Thanks to Brian Orpin.
5 years ago
Roger A. Light c8964228e3 Improved documentation around connect callback return codes.
Close #1730. Thanks to John Laird.
5 years ago
Roger A. Light 4b541ad5ca Fix usage message not mentioning v5.0.
Closes #1713. Thanks to whnr.
5 years ago
Roger A. Light cea0423e69 Update changelog and version. 5 years ago
Roger A. Light 6bd435d721 Fix possible assert crash associated with bridge reconnecting.
This only occurs when compiled without epoll support.

Closes #1700. Thanks to Matthias Urlichs.
5 years ago
Roger A. Light ce463c185b Update changelog. 5 years ago
Roger A. Light eae8c9aab4 Fix check when loading persistence file of a different version
Closes #1684. Thanks to grekhss.
5 years ago
Roger A. Light 762ad432e8 Fix support for openssl 3.0 5 years ago
Roger A. Light 24049b1a1e Fix mosquitto_sub %j or %J not working on Windows.
Closes #1674. Thanks to amigian74.
5 years ago
Roger A. Light b726e2f1ec mosquitto_sub %j and %J timestamps are now in a ISO 8601 compatible format. 5 years ago
Roger A. Light 946257bf30 Remove spurious version heading. 5 years ago
Roger A. Light 4960fc0702 Don't disconnect clients that are already disconnected.
This prevents the session expiry being extended on SIGHUP.

Closes #1521. Thanks to Christoph Krey.
5 years ago
Roger A. Light eeaafed485 Fix memory leak when connecting clients rejected. 5 years ago
Roger A. Light 5908585afd Fix mosquitto_passwd -b not updating passwords for existing users
Closes #1664. Thanks to Leon Kiefer.
6 years ago
Roger A. Light c72dd39f92 Allow MQTT v5.0 outgoing bridges to fall back to MQTT v3.1.1
This applies if connecting to a v3.x only broker.
6 years ago
Roger A. Light 21f203b91a Don't treact unexpected PUBACK/COMP as fatal. 6 years ago
Roger A. Light de25ff694e Report invalid bridge prefix+pattern combinations at config parsing time
Rather than letting the bridge fail later.

Issue #1635. Thanks to pokerazor.
6 years ago
Roger A. Light a16d7e0661 iDon't treat an unexpected PUBREL as fatal.
Issue #1629. Thanks to radcrabs.
6 years ago
Roger A. Light 7f41e37f0f Fix use of sed on BSD.
Closes #1614. Thanks to Christoph Krey.
6 years ago
Roger A. Light c84d175b3d Fixes for the poor souls stuck on <c99.
Closes #1622.
6 years ago
Roger A. Light 0da723c1ec Add `--random-filter` to mosquitto_sub. 6 years ago
Roger A. Light d96543c0b8 Merge branch 'fixes' into develop 6 years ago
Roger A. Light b0a065f790 Update changelog. Release page. Bump copyright. 6 years ago
Roger A. Light 8d5fd7d1e2 Fix `mosquitto_topic_matches_sub()` behaviour with wildcards in topic.
It was not returning MOSQ_ERR_INVAL if the topic contains a wildcard.

Closes #1589. Thanks to mdelete.
6 years ago
Roger A. Light 17e20de9e7 Fix session-expiry-interval for v5 clients using -c.
Default behaviour for v5 clients using `-c` is now to use infinite length
sessions, as with v3 clients.

Closes #1546. Thanks to Kiran Pradeep.
6 years ago
Roger A. Light 019d4214b8 Fix session-expiry-interval for v5 clients using -c.
Default behaviour for v5 clients using `-c` is now to use infinite length
sessions, as with v3 clients.

Closes #1546. Thanks to Kiran Pradeep.
6 years ago
Roger A. Light 56d0b950ac Fix `--remove-retained` not obeying the `-T` option.
This means `--remove-retained -t bbc/# -T bbc/one/#` would remove all
retained messages in `bbc/#`, instead of leaving all of the topics in
`bbc/one/#`.

Closes #1585. Thanks to Simon Moser.
6 years ago
Roger A. Light 07c54627e9 Print OpenSSL errors in more situations
Covers when loading certificates fails, or there are ENGINE problems.

Closes #1552. Thanks to Michael Richardson.
6 years ago
Roger A. Light 27b4518d7e Improve password file parsing in the broker and mosqitto_passwd.
Closes #1584. Thanks to panava.
6 years ago
Roger A. Light ed5db1bd6b Fix `bind_interface` not working for the default listener.
Closes #1533. Thanks to Markus Gothe.
6 years ago
Roger A. Light 70fd600c3a Fix trailing whitespace not being trimmed on acl users.
Closes #1539. Thanks to CliveJL and LeonPoon.
6 years ago
Roger A. Light 3671a6dfdb Add `-x` argument to all clients.
This allows the session-expiry-interval property to be easily set for
MQTT v5 clients.
6 years ago
Roger A. Light 8f1c8cba59 Set minimum keepalive argument to `mosquitto_connect*()` to be 5 seconds.
Closes #1550. Thanks to Markus Gothe.
6 years ago
Roger A. Light 9ae38788dc Fix config->user not being freed on exit.
Closes #1564. Thanks to back1127.
6 years ago
Roger A. Light 812c0636d5 Satisfy valgrind when exiting on error.
This is when due to not being able to open a listening socket, solved by
calling freeaddrinfo in the error cases.

Closes #1565. Thanks to back1127.
6 years ago
Roger A. Light e7c9f009bd Strip whitespace from end of config file string options.
Closes #1566. Thanks to kollokollo.
6 years ago
Roger A. Light d452ea138b Use presence of password file as indicator for authentication checks.
Previously, authentication checks would only take place if usernames
were defined in the password file.

Closes #1545. Thanks to Timothy Godfrey.
6 years ago
Roger A. Light b6119bb759 Check ACL patterns for validity when loading.
Closes #1539. Thanks to Leon Poon.
6 years ago
Roger A. Light d60e86d2a3 Add TCP_NODELAY support to lib and clients.
Closes #1526. Thanks to Felix Moessbauer.
6 years ago
Roger A. Light c8789180f3 Fix session expiry with very large expiry intervals.
Closes #1525. Thanks to Christoph Krey.
6 years ago
Roger A. Light c0443637e8 Merge branch 'master'
Conflicts:
	ChangeLog.txt
	config.mk
	src/context.c
	src/loop.c
	src/subs.c
	test/broker/01-connect-bad-packet.py
	test/broker/02-subpub-qos1-bad-pubcomp.py
	test/broker/02-subpub-qos1-bad-pubrec.py
	test/broker/02-subpub-qos2-bad-puback-1.py
	test/broker/02-subpub-qos2-bad-puback-2.py
	test/broker/02-subpub-qos2-bad-pubcomp.py
	test/broker/02-subpub-qos2.py
	test/broker/07-will-null-topic.py
6 years ago
Roger A. Light b410568299 Bump version, add release post. 6 years ago
Roger A. Light b96739341d Update changelog for last pull request.
Closes #1513.
6 years ago
Roger A. Light a46b45b006 Fix persistent_client_expiration not being used
Closes #1494. Thanks to Christoph Krey.
6 years ago
Roger A. Light c37251c53d Document `mosquitto_connect_srv()`.
Closes #1499. Thanks to Basavesh Shivakumar.
6 years ago
Roger A. Light 3d92dcbbd9 Make documentation for `mosquitto_pub -l` match reality
Blank lines are sent as empty messages.

Closes #1474. Thanks to majekw.
6 years ago
Roger A. Light 1e04b22833 Fix `mosquitto_pub -l` not sending the final line of stdin
This would happen if the final line did not end with a new line.

Closes #1473. Thanks to majekw.
6 years ago
Roger A. Light d003fed383 MQTT v5 bridges can handle "retain-available" being false. 6 years ago
Roger A. Light 2af260ba58 Add `bridge_outgoing_retain` option
This allows outgoing messages from a bridge to have the retain bit
completely disabled, which is useful when bridging to e.g. Amazon or
Google.
6 years ago
Roger A. Light 88c83fe6b5 mosquitto_pub now handles the MQTT v5 retain-available property
It will not set the retain bit if retain-available is false.
6 years ago
Roger A. Light 05171b266d Fix TLS Websockets clients not receiving messages.
This can occurs after one client takes over a previous connection.

Closes #1489. Thanks to Bas Verhoeven.
6 years ago
Roger A. Light 6bde209799 Added `CLIENT_STATIC_LDADD` to makefile builds
This allow more libraries to be linked when compiling the clients with a
static libmosquitto, as required for e.g. openssl on some systems.

Closes #1371. Thanks to Fabrice Fontaine.
6 years ago
Roger A. Light 22eb193309 Merge branch 'stdin-fix-1' of git://github.com/majekw/mosquitto into majekw-stdin-fix-1 6 years ago
Roger A. Light 9cdc822a19 Add changelog, change msg text for previous merge. 6 years ago
Roger A. Light b622aaeee4 Fix messages with an expiry interval missing the property.
They would be be sent without an expiry interval property just before
they were expired.

Closes #1464. Thanks to Dustin Sallings.
6 years ago
Roger A. Light 06a27e799f Fix retained messages with an expiry interval not being expired.
This happened after being restored from persistence.

Closes #1464. Thanks to Dustin Sallings.
6 years ago
Roger A. Light 463fe8fc6c Fix document issues in mosquitto.h.
Closes #1478. Thanks to Liam Fry.
6 years ago
Roger A. Light 1d468708de Fix mosquitto_rr.exe not being included in Windows installers.
Closes #1463. Thanks to raisonchacko.
6 years ago
Roger A. Light 934ec7355a Add issue reference to changelog.
Closes #1416.
6 years ago
Roger A. Light 253326dcc9 Fix problems with reloading config when `per_listener_settings` was true.
Closes #1459. Thanks to Thomas Markin Klein.
6 years ago
Roger A. Light 59c0bfe6e1 Add support for v5 property printing to mosquitto_sub/rr in non-JSON mode. 6 years ago
Roger A. Light 9e4226622f Add `--pretty` option to mosquitto_sub/rr
If active, this produces formatted JSON output rather than the normal
minimised output.
6 years ago
Roger Light e5237ae7e5 Add support for sub/rr v5 prop output in JSON mode 6 years ago
Roger Light 2f8573b456 Add property helper functions.
mosquitto_property_identifier()
mosquitto_property_identifier_to_string()
mosquitto_property_next()
6 years ago
Roger A. Light ad5c2e11d9 Use cJSON for producing JSON output in clients.
Closes #1222. Thanks to Ben Barbour.
6 years ago
majekw 50c9a4b0b0 Fix `mosquitto_pub -l` hang when stdin stream ends. Closes #1448.
Signed-off-by: Marek Wodzinski <majek@w7i.pl>
6 years ago
Roger A. Light 8a4ae28fa9 Fix duplicate cfg definition in rr_client.
Closes #1453. Thanks to jveber.
6 years ago
Roger A. Light 499e2f2e98 Add support for unix sockets to broker, lib, and clients. 6 years ago
Roger A. Light cfacd961c9 Only a single CRL could be loaded at once. This has been fixed.
Closes #1442. Thanks to charlemagnelasse.
6 years ago
Roger A. Light c471dfb201 Fix sub topics being limited to 200 chars instead of 200 levels
Closes #1441. Thanks to Christoph Krey.
6 years ago
Roger A. Light b942b73b6d Fix incorrect memory tracking causing problems with memory_limit option.
Closes #1437. Thanks to Guillaume Bour.
6 years ago
Roger A. Light 093c8f90f5 Fix publish props not being passed to v5 msg callback for QoS 2 msgs.
Closes #1432. Thanks to Magnus Galåen.
6 years ago
Roger A. Light 4db1e80410 More allow_zero_length_clientid fixes.
Closes #1429. Thanks to Dustin Sallings.
6 years ago
Roger A. Light 539c1b9bcb Tests for zero length client id, plus fix for one case where it was allowed 6 years ago
Roger A. Light 54ed3c0fc9 Merge branch 'master' into develop 6 years ago
Roger A. Light b7d8eb1122 Bump version number. Update www. 6 years ago
Roger A. Light 9584463c75 Fix potential crash when reloading config.
Closes #1424, #1425. Thanks to JinPingChng and peteakalad.
6 years ago
Roger A. Light 1a8c44b84f Fix regression on use of `mosquitto_connect_async()` not working.
Closes #1415 and #1422. Thanks to Karl Palsson, Till Zimmermann and Liam Fry.
6 years ago
Roger A. Light 4b6cc208e2 Fix inflight max behaviour and option setting. 6 years ago
Roger A. Light 096380fbdc Add workaround for libwebsockets 3.2.0. 6 years ago
Roger A. Light da5ff1746c Don't use `/` in auto client ids.
Also update client documentation about automatic client ids.
6 years ago
Roger A. Light 0a8358243b mosquitto_sub: Fix `-E` not working unless `-d` was also specified.
Closes #1418. Thanks to Lichard Torman.
6 years ago
Roger A. Light 9883652dde Bump version, update www and changelog. 6 years ago
Roger A. Light 2fd7f5270a mosquitto_passwd returns 1 on an error condition
When attempting to update a user that does not exist.

Closes #1414. Thanks to kdgde.
6 years ago
Roger A. Light 1066750931 Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
Closes #1412. Thanks to Ryan Shaw.
6 years ago
Roger A. Light 6e2be25881 Bump version numbers, add release info. 6 years ago
Roger A. Light 9ad5fe7d95 Fix repeated "Error in poll" messages on Windows.
This occurs when only websockets listeners are defined.

Closes #1391. Thanks to stopak.
6 years ago
Roger A. Light 4dc98c4cef Fix CRL file not being reloaded on HUP.
Closes #35.
6 years ago
Roger A. Light ee3591d228 Fix missing locks on `mosq->state`.
Closes #1374. Thanks to Jeff Trull.
6 years ago
Roger A. Light 3c35c6cdd9 Fix Will not being sent if will delay greater than session expiry.
Closes #1401. Thanks to Will Lisac.
6 years ago
Roger A. Light f1516f86cb Improve error messages in some situations when clients disconnect.
Reduces the number of "Socket error on client X, disconnecting"
messages.
6 years ago
Roger A. Light f6b22f8248 Fix clients using `use_identity_as_*` being disconnected on SIGHUP.
Closes #1402. Thanks to twegener-embertec.
6 years ago
Roger A. Light ba918ac73e Fix reconnect backoff where connections are dropped
Closes #737. Thanks to chelliwell.
6 years ago
Roger A. Light 412379b03b Fix bridges potentially not connecting on Windows.
Closes #478.
6 years ago
Roger A. Light 76865707b2 Guard ssize_t definition on Windows.
Closes #522. Thanks to trinytron.
6 years ago
Roger A. Light 01530a3f07 Improve message_size_limit and various max_* option docs.
Closes #448.
6 years ago
Roger A. Light ff676811d3 Client no longer generates random client ids for v3.1.1 clients
These are now expected to be generated on the broker. This matches the
behaviour for v5 clients.

Closes #291.
6 years ago
Roger A. Light c1e488cb88 Add timeout return code (27) for sub/rr using -W.
Closes #275.
6 years ago
Roger A. Light 6f4e472260 Improve details on global/per listener options in the mosquitto.conf man page.
Closes #274.
6 years ago
Roger A. Light 4658dba6b3 Fix slow websockets performance when sending large messages.
Closes #1390. Thanks to aalibasic.
6 years ago
Roger A. Light 4c4ca38938 Fix support for libwebsockets 3.x. 6 years ago
Roger A. Light 570c3674fb Drop privs to nobody if mosquitto user does not exist. 6 years ago
Roger A. Light a0e7165a9c Fix WITH_STATIC_LIBRARIES using CMake on Windows
Closes #1369. Thanks to TimmvonderMehden
6 years ago
Roger A. Light 50695f8103 Fix v5 DISCONNECT packets with remaining length == 2.
These were being treated as a protocol error.

Closes #1367. Thanks to Frank Pagliughi.
6 years ago
Roger A. Light 494d3d29a0 Fix missing function warnings on NetBSD.
Thanks to Greg Troxel.
6 years ago
Roger A. Light ce3e33e890 Bump version number, add release post. 6 years ago
Roger A. Light 64c6d4d962 Fix properties not being sent on QoS>0 PUBLISH messages. 6 years ago
Roger A. Light 4253eca81c Fix memory leak when setting v5 properties in mosquitto_connect_v5() 6 years ago
Roger A. Light a22ccbd884 Clients: improve error msgs when connecting v3.x broker with v5 client
Closes #1344. Thanks to HowJMay.
6 years ago
Roger A. Light b9006487d1 Fix link in CONTRIBUTING.md.
Closes #1362. Thanks to Furkan Aksoy.
6 years ago
Roger A. Light efc8ed39af Fix incoming msgs not being removed when there are no subs
Fix incoming messages not being removed for a client if the topic being
published to does not have any subscribers.

Closes #1322. Thanks to Yannic Schröder.
6 years ago
Roger A. Light 696a9b8019 Fix incomgin QoS 2 with max_inflight_messages set to 1.
Closes #1332. Thanks to xmas79.
6 years ago
Roger A. Light f21ccc362b Fix mosquitto_string_option(, MOSQ_OPT_TLS_KEYFORM, ) return value
`mosquitto_string_option(mosq, MOSQ_OPT_TLS_KEYFORM, ...)` was incorrectly
returning `MOSQ_ERR_INVAL` with valid input. This has been fixed.

Closes #1360. Thanks to Michael Dombrowski.
6 years ago
Roger A. Light 42237c0239 Make behaviour of `mosquitto_connect[_async]()` consistent.
`mosquitto_connect_async()` is now consistent with `mosquitto_connect()`
when connecting to a non-existent server.

Closes #1345. Thanks to Mohammad Reza.
6 years ago
Roger A. Light b807daed28 Fix error codes not being returned when mosquitto_pub exits.
Closes #1354. Thanks to Ben Barbour.
6 years ago
Roger A. Light 3ad780839d Fix MQTT v5 sub opts being set for v3 subs.
Closes #1353. Thanks to Ben Barbour.
6 years ago
Roger Light 2b2afc93bc Allow other apps access to log file on Windows.
This change means that users with the appropriate security permissions
can open the log file for reading at the same time that it is being
written.

Closes #515.
6 years ago
Roger A. Light d17d7c9229 Fix persistent clients being incorrectly expired on Raspberry Pis.
Closes #1272. Thanks to BowenMarmot and addendumE.
6 years ago
Roger A. Light 4f32e94104 Bump release date. 6 years ago
Roger A. Light e642bee336 Update changelog 6 years ago
Roger A. Light 1d6aa9f69c Bump version and web pages. 6 years ago
Roger A. Light c685b7ecf4 Fix `mosquitto_pub -l` not handling zero length input.
Closes #1302. Thanks to Marcus Watkins.
6 years ago
Roger A. Light 9dc319c183 Remove obsolete `store_clean_interval` from documentation. 6 years ago
Roger A. Light 1fa182d160 Fix incorrect shared subscription topic of '$shared.' 6 years ago
Roger A. Light 85388c01cc CLIENT_LDFLAGS now uses LDFLAGS.
Closes #1294. Thanks to Lucas Ramage.
6 years ago
Roger A. Light 6b6ea3de16 Remove old man page references.
Thanks to Karl Palsson.

Closes #1266.
6 years ago
Roger A. Light 3e858c19c1 Improve documentation around the upgrading of persistence files.
Thanks to jsaak.

Closes #1276.
6 years ago
Roger A. Light 6d71d4b5c4 Fix typo causing build error on Windows when building without TLS support.
Thanks to TimmvonderMehden.

Closes #1264.
6 years ago
Roger A. Light 289de1f8c8 Fix mosquitto_pub exiting with error code 0 when an error occurred.
Thanks to janniswarnat.

Closes #1285.
6 years ago
Roger A. Light 4d54a51c62 Stop some error messages being printed even when `--quiet` was used.
Thanks to Rob de Jonge.

Closes #1284.
6 years ago
Roger A. Light 587debc013 Fix incoming/outgoing quota problems for QoS>0. 6 years ago
Roger A. Light 7d954fa52e Fix `mosquitto_pub -l` not handling network failures.
Closes #1152. Thanks to Dustin Sallings.
6 years ago
Roger A. Light 1bafe0ee2e Fix double free on exit in mosquitto_pub.
Closes #1280. Thanks to Lucky Saini.
6 years ago
Roger A. Light 142d07f45a Fix MQTT v5 overlapping subscription behaviour.
Clients now receive message from all matching subscriptions rather than
the first one encountered, which ensures the maximum QoS requirement is
met.
6 years ago
Roger A. Light de695af8c0 Fix zero length client ids being rejected for MQTT v5 clients.
This was happening when clean start was set to true.
6 years ago
Roger A. Light e51e40e95c Fix incorrect shared subscription topic of '$shared.' 6 years ago
Roger A. Light 1c0c6a40fc CLIENT_LDFLAGS now uses LDFLAGS.
Closes #1294. Thanks to Lucas Ramage.
6 years ago
Roger A. Light b42bb99ba6 Disable TLS renegotiation.
Client initiated renegotiation is considered to be a potential attack
vector against servers.

Closes #1257. Thanks to Daniele Sluijters.
6 years ago
Roger A. Light 5088202529 Fix persistent Websockets clients not receiving messages.
This occurs after they reconnect, having sent DISCONNECT
on a previous session.

Closes #1227. Thanks to usernametaken.
6 years ago
Roger A. Light 00eee59ad9 Add 'extern "C"' on public headers.
mosquitto_broker.h and mosquitto_plugin.h

Thanks to Wolfgang Petroschka.

Closes #1290.
6 years ago
Roger A. Light bd34d8c9cd Remove old man page references.
Thanks to Karl Palsson.

Closes #1266.
6 years ago
Roger A. Light b4dfeb3767 Fix MQTT v5 clients not being able to specify a password without a username.
Thanks to Erik Moqvist.

Closes #1274.
6 years ago
Roger A. Light 46d5aa9682 Improve documentation around the upgrading of persistence files.
Thanks to jsaak.

Closes #1276.
6 years ago
Roger A. Light 3f8f4fc2c8 Fix typo causing build error on Windows when building without TLS support.
Thanks to TimmvonderMehden.

Closes #1264.
6 years ago
Roger A. Light 999c478c88 Fixes for bug #1273
* Fix Will message for a persistent client incorrectly being sent when the client reconnects after a clean disconnect.
* Fix Will message for a persistent client not being sent on disconnect.
* Fix mosquitto_pub not using the `-c` option.

Thanks to Yannic Schröder.

Closes #1273.
6 years ago
Roger A. Light 29cf965b4f Fix mosquitto_pub exiting with error code 0 when an error occurred.
Thanks to janniswarnat.

Closes #1285.
6 years ago
Roger A. Light 7a33a129d6 Stop some error messages being printed even when `--quiet` was used.
Thanks to Rob de Jonge.

Closes #1284.
6 years ago
Roger A. Light d05bd95881 Fix compilation problem related to getrandom() on non-glibc systems. 6 years ago
Roger A. Light b1298dff54 Fix use of getrandom() for Linux and WITH_TLS=no. 6 years ago
Roger A. Light ef3e52d40b Fix default max_topic_alias listener config not being used.
This was not being copied to the in-use listener when compiled without
TLS support.
6 years ago
Roger A. Light a47da31679 Update changelog, improve warning message from last commit. 6 years ago
Roger A. Light cd3877e628 Fix detection of incoming v3.1/v3.1.1 bridges.
Closes #1263. Thanks to vrst37.
6 years ago
Roger A. Light 0e58a5e94e Bump version numbers, update webpage. 7 years ago
Roger A. Light e742c1c2f1 Fix $SYS/broker/version being incorrectly expired after 60 seconds.
Close #1245. Thanks to Christoph Krey.
7 years ago
Roger A. Light f64d3b1e5c Fix broker originated messages not being sent.
This occurred when `check_retain_source` was set to true.

Closes #1245. Thanks to Christoph Krey.
7 years ago
Roger A. Light a9f17cea95 Fix Will message not allowing user-property properties. 7 years ago
Roger A. Light 203949a512 Fix -L url parsing.
Closes #1248. Thanks to Andrew J Freyer.
7 years ago
Roger A. Light dc4b823f92 Fix crash after client has been unable to connect to a broker
This is part of the cleanup routine when the client is already exiting.

Closes #1246. Thanks to Christoph Krey.
7 years ago
Roger A. Light eebdbc86c4 Fix access after free when v5 client with Will message disconnects.
The Will message has as its first property one of content-type,
correlation-data, payload-format-indicator, or response-topic.

Closes #1244. Thanks to Christoph Krey.
7 years ago
Roger A. Light 42fb2f5538 Fix build for WITH_TLS=no.
Closes #1250. Thanks to bmparr.
7 years ago
Roger A. Light 35793ca1c4 Bump version number, update webpage. 7 years ago
Roger A. Light 439575475c Use CMAKE_INSTALL_* variables when installing in CMake.
Closes #1049. Thanks to Greg Troxel.
7 years ago
Roger A. Light efa649f451 Don't call ldconfig in CMake scripts.
Closes #1048. Thanks to Greg Troxel.
7 years ago
Roger A. Light 3b4a5419c3 Build fixes around CFLAGS et al.
- Split CFLAGS and CPPFLAGS, and LDFLAGS and LDADD/LIBADD.
- test/unit now respects CPPFLAGS and LDFLAGS.

Closes #1232. Thanks to Greg Troxel.
7 years ago
Roger A. Light 0d01e212ad Document bundled dependencies and how to disable.
Closes #1231. Thanks to Greg Troxel.
7 years ago
Roger A. Light d6c7923d16 Add `make check` and document testing procedure.
Also support test target in cmake.
7 years ago
Roger A. Light 27b8bcf320 Document `memory_limit` option. 7 years ago
Roger A. Light 5c0c830229 Fix compilation on musl C systems due to missing sys/time.h header.
Thanks to maxice8.
7 years ago
Roger A. Light 449103e960 Merge remote-tracking branch 'refs/remotes/origin/fixes'
Conflicts:
	ChangeLog.txt
7 years ago
Roger A. Light 56757df512 Bump version and changelog details. 7 years ago
Roger A. Light fb1979c0ea Fix build on SmartOS due to missing IPV6_V6ONLY.
Thanks to Matt Ingenthron.

Closes #1212.
7 years ago
Roger A. Light cba3380b98 Fix mosquitto_sub encoding of special characters with %j format.
Thanks to Ben Barbour.

Closes #1220.
7 years ago
Roger A. Light 4995436b5a Add --repeat and --repeat-delay to mosquitto_pub. 7 years ago
Roger A. Light dec769ce33 Client and doc ALPN additions
Add ALPN support for all clients, update documentation, and add to ChangeLog.
7 years ago
Roger A. Light 925debb8a5 Add mosquitto_rr, the "request-response" client. 7 years ago
Roger A. Light 1220ba4bfe Rejig OCSP code. 7 years ago
Roger A. Light 42732f4cca Fix mosquitto_passwd segfault on corrupt file.
Thanks to srasku-ge.

Closes #1207
7 years ago
Roger A. Light 320ddc1303 Merge branch 'master'
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	client/Makefile
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.h
	lib/mqtt3_protocol.h
	lib/util_mosq.c
	set-version.sh
	snap/snapcraft.yaml
	src/bridge.c
	src/database.c
	src/handle_connack.c
	src/loop.c
	src/persist.c
	test/broker/Makefile
7 years ago
Roger A. Light a29238fc87 Update changelog. 7 years ago
Roger A. Light 6a1ac70ee6 Disallow writing to $ topics where appropriate. 7 years ago
Roger A. Light 1d4bf55165 Tidy previous commit and add to changelog. 7 years ago
Roger A. Light 1ce1bce941 Add --remove-retained to mosquitto_sub
This can be used to clear retained messages on a broker.
7 years ago
Roger A. Light ce31269e05 Update changelog, bump version, bump copyright year. 7 years ago
Roger A. Light 7207041428 Fix delayed bridge local subs causing missing messages.
Closes #1174. Thanks to beville.

Bug: https://github.com/eclipse/mosquitto/issues/1174
7 years ago
Roger A. Light acf478eca2 Fix broken mosquitto_passwd on FreeBSD.
Closes #1032. Thanks to jkoopman, Joseph Benden and Ari Suutari.

Bug: https://github.com/eclipse/mosquitto/issues/1032
7 years ago
Roger A. Light 4490d06a63 Coverity fixes.
1398654, 1398656 - lib missing unlock on fatal protocol error
1398655 - broker potential double free on startup after fatal persist
          error.
7 years ago
Roger A. Light 463de0a2c1 Make error messages for missing config file clearer. 7 years ago
Roger A. Light 1924afe49e Add explicit support for TLS v1.3 and drop TLS v1.0. 7 years ago
Roger A. Light 130ddf47f7 Add `dhparamfile` option, to allow DH parameters to be loaded.
This is for Ephemeral DH support on listeners.
7 years ago
Roger A. Light dfbd33e0f4 Update documentation for bridge backup, plus tweaks
Sets default to use the backoff mechanism.
7 years ago
Roger A. Light e334aad853 Rewrite bind_interface docs, update changelog. 7 years ago
Roger A. Light f4e24f9524 Use higher resolution timer for random client id generation. 7 years ago
Roger A. Light 5e8199323b Fix clients being disconnected when ACLs are in use.
This only affects the case where a client connects using a username, and
the anonymous ACL list is defined but specific user ACLs are not
defined.

Closes #1162. Thanks to quonb.
7 years ago
Roger A. Light bb72cf9088 Bump version number, update webpage. 7 years ago
Roger A. Light 321e566af6 Fix unref'd messages being saved to the persistence file.
This was leaving dangling messages that were never freed.

Closes #389. Thanks to pjchx.
7 years ago
Roger A. Light 1a6c3f0c86 Improve documentation around the `include_dir` option.
Closes #1154. Thanks to Guzoft.
7 years ago
Roger A. Light 084062c85e Merge branch 'fixes' into mqtt5 7 years ago
Roger A. Light 9999faf9da Add rewritten build test script and remove some build warnings. 7 years ago
Roger A. Light e72d1d6ff5 Fix `mosquitto_topic_matches_sub()` rc with sub=="topic/#abc".
This now returns MOSQ_ERR_INVAL as expected.
7 years ago
Roger A. Light 04e89450c0 Don't require C99 compiler. 7 years ago
Roger A. Light 715da28602 Fix include_dir not sorting config files before loading.
Thanks to momoskitto.
7 years ago
Roger A. Light 2e1c2c430f `per_listener_settings true` must come before other security settings.
Produce error if this is not the case. Closes #1164, thanks to
momoskitto.
7 years ago
Roger A. Light 9378016b19 Fix build failure when using WITH_ADNS=yes 7 years ago
Roger A. Light 1b5c900e77 Update CVE details and bump version number. 7 years ago
Roger A. Light 1c075988ca Log message for disconnecting a client with invalid UTF-8 topic.
Closes #1144. Thanks to Kris Mattheus.
7 years ago
Roger A. Light f952ae3a67 Fixed durable clients being unable to receive messages when offline.
This occurred when per_listener_settings was set to true.

Closes #1081. Thanks to dwin-wangjt.
7 years ago
Roger A. Light 17b52bd5d1 Windows: Fix possible crash when client disconnects.
Closes #1137. Thanks to Kris Mattheus.
7 years ago
Roger A. Light d6a690aa8d Fix Will not being sent for Websockets clients.
Closes #1143. Thanks to salcedo.
7 years ago
Roger A. Light ab8b57ff54 Allow broker to always restart on Windows when using `log_dest file`.
Closes #1080. Thanks to lcouz.
7 years ago
Roger A. Light 29a1936c77 Fix spaces not being allowed in the bridge remote_username option.
Closes #1131. Thanks to beville.
7 years ago
Roger A. Light ce1d0ae364 Man page can now be built on any system.
Closes #1139. Huge thanks to Chris Mayo.
7 years ago
Roger Light c40957a7d8 Fix and tests for CVE-2018-12546. 7 years ago
Roger A. Light d8505624d0 Fix and tests for security bug #541870. 7 years ago
Roger A. Light 36b5421c59 Fix and tests for security bug #543401. 7 years ago
Roger Light 5236295159 Handle mismatched handshakes properly.
For example, a QoS1 PUBLISH with QoS2 reply.
7 years ago
Roger A. Light 495e9647c2 Improve bridge remapping documentation. 7 years ago
Roger A. Light ad42f449d8 Update changelog for previous PR.
Thanks to Matthias Stone.
7 years ago
Roger A. Light e8320cbf19 Fix TLS connections not working over SOCKS.
Thanks to Mark Oeltjenbruns.
7 years ago
Roger A. Light a2b78d87a6 Update changelog 7 years ago
Roger A. Light be9c1071b0 Fix compilation when openssl deprecated APIs are not available.
Closes #1094. Thanks to Rosen Penev.
7 years ago
Roger A. Light 70c4097b6f Fix comparison of boolean values in CMake build.
Closes #1101. Thanks to Mojca Miklavec and Andrew L. Moore.
7 years ago
Roger A. Light 4a2e569171 -V now accepts `5, `311`, `31`, as well as `mqttv5` etc. 7 years ago
Roger A. Light 2f54b16544 Fix mosquitto_pub not always sending everything with -l and QoS>0. 7 years ago
Roger A. Light 19fbbd8726 Update details of CVE-2018-20145. 7 years ago
Roger A. Light fcf4cd0b27 Merge branch 'master' into mqtt5 7 years ago
Roger A. Light a8ca5c83af Bump version. 7 years ago
Roger A. Light 89f3d7bb3f Don't print connect/disconnect messages when connection_messages false.
Closes #772. Closes #613. Closes #537.

Thanks to Christopher Maynard, Brandon Arrendondo, and qubeck.
7 years ago
Roger A. Light a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
7 years ago
Roger A. Light 9097577b49 Fix acl_file being ignore for default listener if with per_listener_settings
Close #1073. Thanks to Jef Driesen.

Bug: https://github.com/eclipse/mosquitto/issues/1073
7 years ago
Roger A. Light 73c46174f8 Don't call on_disconnect() twice if keepalive tests fail.
Closes #1067. Thanks to xingchen02.

Bug: https://github.com/eclipse/mosquitto/issues/1067
7 years ago
Roger A. Light 6ef2c79e9a Add max_keepalive, for limiting keepalives of MQTT v5 clients. 7 years ago
Roger A. Light 48c2217015 auto_id_prefix now defaults to 'auto-'. 7 years ago
Roger A. Light 1d3949bce0 Improve broker generated client ids for the non-Linux case.
Removes libuuid dependency.
7 years ago
Roger A. Light 3a871828ac Print message on error when installing as a Windows service. 7 years ago
Roger A. Light c9ed2708f6 Don't reload auth_opt_ options on reload.
This matches the behaviour of the other plugin options.

Closes #1068. Thanks to Jason McFadyen.

Bug: https://github.com/eclipse/mosquitto/issues/1068
7 years ago
Roger A. Light 464b12f3d6 Fix outgoing retained messages not being sent by bridges.
This now happens on initial connection, after CONNACK is processed,
before it was happening (and being dropped) before the connection was
made.

Closes #1040. Thanks to giover.

Bug: https://github.com/eclipse/mosquitto/issues/1040
7 years ago
Roger A. Light 5d02f58151 Fix reconnect delay backoff behaviour.
Closes #1027. Thanks to Harm Verhagen.

Bug: https://github.com/eclipse/mosquitto/issues/1027
7 years ago
Roger A. Light e169f1c7c2 When using ADNS, don't ask for all network protocols when connecting.
This can lead to confusing "Protocol not supported" errors if the
network is down, because UDP sockets are provided.

Thanks to jsaak.

Closes #1062.

Bug: https://github.com/eclipse/mosquitto/issues/1062
7 years ago
Roger A. Light d29dac087d Add socket_domain option. 7 years ago
Roger A. Light 34293d07c1 Always print leading zeros in mosquitto_sub when output format is hex.
Closes #1066.

Thanks to skiizo.

Bug: https://github.com/eclipse/mosquitto/issues/1066
7 years ago
Roger A. Light b54e379fba Fix websockets listeners not verifying client certs.
When using a TLS enabled websockets listener with "require_certificate"
enabled, the mosquitto broker does not correctly verify client certificates.
This is now fixed. All other security measures operate as expected, and in
particular non-websockets listeners are not affected by this. Closes #996.

Thanks to creising.
7 years ago
Roger A. Light 71b8c4d892 Fix TLS connections when using an external event loop.
Affects the use of mosquitto_loop_read() and mosquitto_write().
Closes #990.
7 years ago
Roger A. Light b803b40a22 Update changelog. 7 years ago
Roger A. Light 34c752a0d0 Give better error message if a client sends a password without a username.
Closes #1015. Thanks to TabascoEye.
7 years ago
Roger A. Light 9f7577aab6 $SYS/broker/clients/disconnected should never be negative.
Closes #287. Thanks to Lovisa Johansson.

Bug: https://github.com/eclipse/mosquitto/issues/287
7 years ago
Roger A. Light d7bcec4878 Don't disconnect clients when a plugin denies SUBSCRIBE.
Thanks to Ibrahim Koujar.

Bug: https://github.com/eclipse/mosquitto/issues/1016
7 years ago
Roger A. Light eff8fab1b4 Only process network errors for clients that have nothing to read.
Closes #7.
7 years ago
majekw 7f1419e4de Fix mosquitto_pub -l if compiled using cmake.
Since dde005ef92 mosquito_pub is throwing error
that 'threading support has not been compiled' when compiled using cmake.
It looks like WITH_THREADING flag is not set at top level Makefile and used
only in lib/ directory, so library is correctly compiled with threading.
But for client this flag is undefined, so it gives error on '-l' option.

This commit moves part related to WITH_THREADING flag out of lib/CMakeLists.txt
to top levele CMakeLists.txt, so it could be accessible to all subdirectories.

Signed-off-by: Marek Wodzinski <majek@w7i.pl>
7 years ago
Roger A. Light 0a9ee5b4cf Fix memory leak when reconnecting with TLS errors.
Fix memory leak that occurred if mosquitto_reconnect() was used when TLS
errors were present.

Closes #592. Thanks to smartdabao and aaronovz1.
7 years ago
Roger A. Light 1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
7 years ago
Roger A. Light 0e76bed50e Add -E option to mosquitto_sub.
This causes the client to exit immediately after its subscriptions are
acknowledged by the broker, and can be used to create a durable client
session without requiring messages to be delivered.

Closes #952.
7 years ago
Roger A. Light 8b66a323cd Add mosquitto_subscribe_multiple()
For sending subscriptions to multiple topics in one command.
7 years ago
Roger A. Light c78003cacf Bump version number, add CVE details. 7 years ago
Roger A. Light 588d39efdc Fix Windows version not starting if include_dir did not contain any files.
Closes #566.

Thanks to marleau.
7 years ago
Roger A. Light d9fc9cd0ae Add allow_zero_length_clientid, auto_id_prefix documentation.
Closes #600.
7 years ago
Roger A. Light f9c9f3d396 Fix incorrect hash usage with duplicate clients.
Fix duplicate clients being added to by_id hash before the old client
was removed.

Closes #645.
7 years ago
Roger A. Light 008d424a33 Minor documentation fix. Closes #520. 7 years ago
Roger A. Light 7b1892caef Fix retained msgs not sent by bridges.
This occurred when a bridge connected for the first time and so made a
local subscription for outgoing topics.

Closes #701.
7 years ago
Roger A. Light 59bd07627d Various build improvements to help packaging. 7 years ago
Roger A. Light 7ca3a24686 Remove requirement to use `user root` in snap package config files. 7 years ago
Roger A. Light 0e16a248f2 Elevate log level to warning for situation when socket limit is hit. 7 years ago
Roger A. Light 3f87232065 Bump version number. 7 years ago
Roger A. Light 55ca61f14e Fix segfault on HUP when bridges and security options are configured.
Closes #849. Closes #965. Thanks to Wolfgand Hottgenroth and Dustin Sallings.
7 years ago
Roger A. Light 2b4ba10b3d Fix "round_robin false" behaviour.
Closes #481.
7 years ago
Roger A. Light 1e47ee4cad Fix for bridge connections when using WITH_ADNS=yes. 7 years ago
Roger A. Light 888ca48823 Changelog entry for #932. 7 years ago
Roger A. Light ae45bd3d40 Update changelog and fixes to #927 PR. 7 years ago
Roger A. Light ee8e20de75 Fix excessive CPU usage when the number of sockets exceeds the system limit.
Closes #948. Thanks to wiebeytec.
7 years ago
Roger A. Light dceb02f444 Make it easier to build without bundled uthash.h.
Use "make WITH_BUNDLED_DEPS=no".
7 years ago
Roger A. Light e6a0199bb2 Fix incorrect call to setsockopt() for TCP_NODELAY.
Closes #941. Thanks to rfalke.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 2221deb7a7 Fix build when using WITH_ADNS=yes. 7 years ago
Roger A. Light a9da3c263d Bump version number.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 11395f9852 Fix accessor functions for username and client id when used in plugin auth check. 7 years ago
Roger A. Light 14bd96e1e1 Add support for compiling with static libwebsockets library. 7 years ago
Roger A. Light 0ec090f31a Fixes for building on FreeBSD. 7 years ago
Roger A. Light e240a692a7 Fix compiling on Mac OS X <10.12 due to clock_gettime()
Closes #813 and #240.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 3d3b7fc46f Fix default port problem when compiling clients using WITH_TLS=no. 7 years ago
Roger A. Light ab5af8f0b9 Fix building for libwebsockets < 1.6. 7 years ago
Roger A. Light af2678ea49 Fix possible endian issue when reading the `memory_limit` option.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 10b19a42ed Fixes for building on NetBSD.
Closes #258.

Thanks to Daniel Ölschlegel.
7 years ago
Roger A. Light ecb4006f38 Don't reject ACL patterns without %u or %c, just warn.
Using `pattern blah/#` is a legitimate method of getting a global ACL.
We shouldn't be changing behaviour in a fixes release.
7 years ago
Roger A. Light 7c94a73c17 Fix UNSUBACK messages not being logged.
Closes #903.

Thanks to Christoph Krey.
7 years ago
Roger A. Light 0d25cb58b4 Fix `use_identity_as_username true` not working.
Closes #833.

Thanks to David Crook and Brice Waegeneire.

Bug: https://github.com/eclipse/mosquitto/issues/833

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 8603d32819 Update changelog.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 39170d1181 ACL patterns that do not contain either %c or %u are now rejected.
Closes #209.

Bug: https://github.com/eclipse/mosquitto/issues/209

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 7f0b4d6271 Fix connection problems when using mosquitto_connect_async().
The connection wouldn't always complete if mosquitto_loop_start() was
called before mosquitto_connect_async(). Closes #848.

Thanks to Ian Gough.

Bug: https://github.com/eclipse/mosquitto/issues/848

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 2f6f5dbf9d Fix problem on Pi caused by unsigned char being default.
Found via #849.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 575dce91f0 Fix segfault on startup if bridge CA certificates could not be read.
Closes #851.

Thanks to chelliwell.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 4bacbecb1b Fix some places where return codes were incorrect.
Closes #850.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light fc9a0db966 All clients now time out if they exceed their keepalive*1.5
This was inconsistent before.

Partially addresses #865.
7 years ago
Roger A. Light b07e0c08bf Fix IPv6 addresses not being able to be used as bridge addresses.
Closes #886.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light bcf76b9cb6 Remove use of AI_ADDRCONFIG.
Closes #869, #901.

Thanks to Alex Richman.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 286400abcf Use AF_UNSPEC etc. instead of PF_UNSPEC to comply with POSIX.
Closes #863.

Thanks to denigmus and Patrick TJ McPhee.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light a954081673 Print more OpenSSL errors when loading certificates/keys fail.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 8bbb5887d0 [Broker] Fix auth plugin cleanup function not being called.
Closes #900.

Thanks to Julian Zhao.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago