Commit Graph

939 Commits

Author SHA1 Message Date
Roger A. Light
6dec2b468b Remove redundant expiry checks
This is all now handled in session_expiry.c, through session expiry interval/time.
2019-11-28 16:19:57 +00:00
Roger A. Light
a46b45b006 Fix persistent_client_expiration not being used
Closes #1494. Thanks to Christoph Krey.
2019-11-28 16:17:41 +00:00
Roger Light
d92360dd8e Split sub and retain trees. 2019-11-22 14:07:15 +00:00
Roger A. Light
d003fed383 MQTT v5 bridges can handle "retain-available" being false. 2019-11-07 13:31:42 +00:00
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.
2019-11-07 11:59:29 +00:00
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.
2019-11-06 22:25:33 +00:00
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.
2019-10-31 12:56:13 +00:00
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.
2019-10-31 12:54:20 +00:00
Roger A. Light
d49988fa6f Rejig unix socket support. 2019-10-30 21:48:53 +00:00
Roger A. Light
253326dcc9 Fix problems with reloading config when per_listener_settings was true.
Closes #1459. Thanks to Thomas Markin Klein.
2019-10-15 15:32:24 +01:00
Roger A. Light
b660283e64 Basic MQTT v5 support for bridges.
This gives equivalent behaviour as for v3.1.1/v3.1 bridges, there is no extra functionality yet.
2019-10-09 10:54:44 +01:00
Roger A. Light
847c3f1f8b Move bridge on connect code to bridge.c. 2019-10-09 10:51:42 +01:00
Roger A. Light
1ab19f2b3d Make error messages clearer when bridge misconfigured 2019-10-09 10:06:31 +01:00
Roger A. Light
17c32d89d9 Restrict access to unix socket. 2019-10-09 09:55:11 +01:00
Roger A. Light
43a692dfbe Add new files to cmakelists. 2019-10-08 20:56:56 +01:00
Roger A. Light
499e2f2e98 Add support for unix sockets to broker, lib, and clients. 2019-10-08 20:55:31 +01:00
Roger A. Light
fad184c9c2 Bridge remapping refactoring and tests. 2019-10-03 16:46:15 +01:00
Roger A. Light
8463c33720 Refactor property remaining length calculation. 2019-10-03 10:36:24 +01:00
Roger A. Light
cfacd961c9 Only a single CRL could be loaded at once. This has been fixed.
Closes #1442. Thanks to charlemagnelasse.
2019-10-02 13:37:52 +01:00
Roger A. Light
c471dfb201 Fix sub topics being limited to 200 chars instead of 200 levels
Closes #1441. Thanks to Christoph Krey.
2019-10-02 13:00:01 +01:00
Roger A. Light
b942b73b6d Fix incorrect memory tracking causing problems with memory_limit option.
Closes #1437. Thanks to Guillaume Bour.
2019-10-01 16:57:54 +01:00
Roger A. Light
4db1e80410 More allow_zero_length_clientid fixes.
Closes #1429. Thanks to Dustin Sallings.
2019-09-26 11:53:58 +01:00
Roger A. Light
539c1b9bcb Tests for zero length client id, plus fix for one case where it was allowed 2019-09-26 11:14:52 +01:00
Roger A. Light
54ed3c0fc9 Merge branch 'master' into develop 2019-09-25 19:09:10 +01:00
Roger A. Light
6a01453ce0 Build fixes. 2019-09-25 12:17:17 +01:00
Roger A. Light
9584463c75 Fix potential crash when reloading config.
Closes #1424, #1425. Thanks to JinPingChng and peteakalad.
2019-09-25 11:24:47 +01:00
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.
2019-09-24 20:15:04 +01:00
Roger A. Light
096380fbdc Add workaround for libwebsockets 3.2.0. 2019-09-24 10:21:51 +01:00
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.
2019-09-17 09:37:16 +01:00
Roger A. Light
1066750931 Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
Closes #1412. Thanks to Ryan Shaw.
2019-09-15 22:57:36 +01:00
Roger A. Light
0a0ad4cd6c Fix for old libwebsockets versions. 2019-09-12 17:15:46 +01:00
Roger A. Light
ce68040f22 Refuse to compile with lws 3.2.0. 2019-09-12 14:44:27 +01:00
Roger A. Light
8f6ac1b64a Fix for websockets regression. 2019-09-12 13:31:01 +01:00
Roger A. Light
5941291bd5 Fix build WITH_TLS=no 2019-09-11 16:16:38 +01:00
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.
2019-09-11 15:53:36 +01:00
Roger A. Light
4dc98c4cef Fix CRL file not being reloaded on HUP.
Closes #35.
2019-09-11 09:08:02 +01:00
Roger Light
31f09d1206
Merge pull request #1405 from woelfman/fix-engine-key-uri
Fix usage of tls_engine and tls_keyform.
2019-09-08 20:44:19 +01:00
Matt Woelfel
39803e538f Fix usage of tls_engine and tls_keyform.
The current implementation does not properly forward the engine
parameters to OpenSSL causing OpenSSL to incorrectly attempt to open the
engine key uri as a file.

Sponsored-by: Trimble, Inc.
Signed-off-by: Matt Woelfel <matt@woelfware.com>
2019-09-07 18:56:59 -05:00
Roger A. Light
034324c46d Fix websockets 3.2 causing slow connection on non-websockets listeners
Closes #1406. Thanks to pbrenna.
2019-09-07 21:45:56 +01:00
Roger A. Light
5fd92cbfbd Further fix for #1401. 2019-09-06 22:28:11 +01:00
Roger A. Light
3c35c6cdd9 Fix Will not being sent if will delay greater than session expiry.
Closes #1401. Thanks to Will Lisac.
2019-09-05 12:46:46 +01:00
Roger A. Light
f1516f86cb Improve error messages in some situations when clients disconnect.
Reduces the number of "Socket error on client X, disconnecting"
messages.
2019-09-05 12:31:52 +01:00
Roger A. Light
779c6cc234 Fix leak introduced in previous commit. 2019-09-05 12:10:04 +01:00
Roger A. Light
f6b22f8248 Fix clients using use_identity_as_* being disconnected on SIGHUP.
Closes #1402. Thanks to twegener-embertec.
2019-09-05 11:37:43 +01:00
Roger A. Light
4658dba6b3 Fix slow websockets performance when sending large messages.
Closes #1390. Thanks to aalibasic.
2019-08-29 14:12:58 +01:00
Roger A. Light
4c4ca38938 Fix support for libwebsockets 3.x. 2019-08-29 14:12:58 +01:00
YangHau
abfdc2f8a6 Remove useless if statement
If statement for detecting if a pointer is NULL
is totally unnecessary.

Signed-off-by: YangHau <vulxj0j8j8@gmail.com>
2019-08-16 02:04:52 +08:00
Roger A. Light
570c3674fb Drop privs to nobody if mosquitto user does not exist. 2019-08-07 10:42:03 +01:00
Roger A. Light
1c1ccaee52 Merge branch 'master' into develop 2019-08-06 15:04:36 +01:00
Roger A. Light
cbced051e7 Better check for printable db_dump payloads. 2019-08-06 13:24:06 +01:00
Roger A. Light
9c3e6b4ccc Remove debug printfs. 2019-08-06 13:18:39 +01:00
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.
2019-08-05 21:13:23 +01:00
Roger A. Light
c269e6f019 db_dump: Update for version 5 file format
Closes #1320. Thanks to Christoph Krey.
2019-08-01 15:49:25 +01:00
Roger Light
07d2504bf5
Merge pull request #1254 from ccvca/fix_passwd_len
Fix password input when MAX_BUFFER_LEN is not 1024 in mosquitto_passwd.c
2019-08-01 10:18:34 +01:00
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.
2019-07-31 18:52:51 +01:00
Roger A. Light
696a9b8019 Fix incomgin QoS 2 with max_inflight_messages set to 1.
Closes #1332. Thanks to xmas79.
2019-07-30 23:25:12 +01:00
Roger A. Light
13ac1080a0 Refactoring bridge code
This separates out a good amount from the main loop code.
2019-07-11 14:43:32 +01:00
Roger A. Light
d17d7c9229 Fix persistent clients being incorrectly expired on Raspberry Pis.
Closes #1272. Thanks to BowenMarmot and addendumE.
2019-06-25 17:01:41 +01:00
Matevz Mihalic
0a5fbc403b
Fix plugin psk_key_get for v4
Signed-off-by: Matevz Mihalic <matevz.mihalic@gmail.com>
2019-06-17 13:00:27 +02:00
Roger A. Light
587debc013 Fix incoming/outgoing quota problems for QoS>0. 2019-05-31 22:44:34 +01:00
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.
2019-05-29 16:19:18 +01:00
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.
2019-05-29 16:07:45 +01:00
Roger A. Light
e51e40e95c Fix incorrect shared subscription topic of '$shared.' 2019-05-29 15:40:17 +01:00
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.
2019-05-29 11:47:18 +01:00
Roger Light
44d170053d
Merge pull request #1255 from etactica/ssl-fixes
Ssl fixes for ENGINE and UI includes
2019-05-29 10:34:11 +01:00
Roger A. Light
96d0a26902 Only add to disused if session expiry is 0. 2019-05-28 23:37:26 +01:00
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.
2019-05-28 22:13:22 +01:00
Roger A. Light
3dd8eb722b Colour internal logs for visibility. 2019-05-28 22:00:11 +01:00
Roger A. Light
00eee59ad9 Add 'extern "C"' on public headers.
mosquitto_broker.h and mosquitto_plugin.h

Thanks to Wolfgang Petroschka.

Closes #1290.
2019-05-23 11:03:09 +01:00
Roger A. Light
a900e3a1a7 Mention mosquitto_broker.h in mosquitto_plugin.h. 2019-05-22 16:49:04 +01:00
Roger A. Light
f974b91084 Consistent ref counting inc and dec functions. 2019-05-22 13:20:45 +01:00
Roger A. Light
b4dfeb3767 Fix MQTT v5 clients not being able to specify a password without a username.
Thanks to Erik Moqvist.

Closes #1274.
2019-05-21 23:56:22 +01:00
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.
2019-05-21 17:08:52 +01:00
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.
2019-05-16 14:03:39 +01:00
Roger A. Light
cd3877e628 Fix detection of incoming v3.1/v3.1.1 bridges.
Closes #1263. Thanks to vrst37.
2019-05-08 11:53:51 +01:00
Karl Palsson
22303848e2 ssl: support openssl with ENGINE support disabled.
Alternatively, just drop support for this config.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2019-05-02 16:44:14 +00:00
Christian von Arnim
324ed6be76
Fix password input when MAX_BUFFER_LEN is not 1024 in mosquitto_passwd.c
Signed-off-by: Christian von Arnim <christian.vonarnim@gmail.com>
2019-05-01 09:56:55 +02:00
Roger A. Light
e742c1c2f1 Fix $SYS/broker/version being incorrectly expired after 60 seconds.
Close #1245. Thanks to Christoph Krey.
2019-04-30 13:25:56 +01:00
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.
2019-04-30 13:25:54 +01:00
Roger A. Light
a9f17cea95 Fix Will message not allowing user-property properties. 2019-04-30 13:25:27 +01:00
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.
2019-04-30 13:21:05 +01:00
Roger A. Light
42fb2f5538 Fix build for WITH_TLS=no.
Closes #1250. Thanks to bmparr.
2019-04-29 22:56:22 +01:00
Roger A. Light
439575475c Use CMAKE_INSTALL_* variables when installing in CMake.
Closes #1049. Thanks to Greg Troxel.
2019-04-26 17:07:05 +01:00
Roger A. Light
efa649f451 Don't call ldconfig in CMake scripts.
Closes #1048. Thanks to Greg Troxel.
2019-04-26 17:07:02 +01:00
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.
2019-04-26 17:06:54 +01:00
Roger A. Light
4dcd977932 Windows build fixes. 2019-04-17 20:09:59 +01:00
Roger A. Light
449103e960 Merge remote-tracking branch 'refs/remotes/origin/fixes'
Conflicts:
	ChangeLog.txt
2019-04-17 17:51:34 +01:00
Roger A. Light
3e6cb42a40 Fix minor Coverity issues
1400727 - unused value
1400726 - dereference after null check
1400728 - derefence before null check
2019-04-17 16:20:46 +01:00
Roger A. Light
689989cc56 Fix inflight quota inc/dec for both broker and library. 2019-04-17 16:15:41 +01:00
Roger A. Light
6438ce861e Minor build variant fixes. 2019-04-17 11:00:54 +01:00
Roger A. Light
32fde3885c Fix missing errors for websockets. 2019-04-17 09:43:38 +01:00
Roger A. Light
8531cb1d79 Separate broker message queues into in/out.
This allows and includes better flow control handling for QoS>0.
2019-04-17 09:29:34 +01:00
Roger A. Light
baf1909ffb Improve some messages when client disconnects. 2019-04-16 11:40:07 +01:00
Roger A. Light
fb1979c0ea Fix build on SmartOS due to missing IPV6_V6ONLY.
Thanks to Matt Ingenthron.

Closes #1212.
2019-04-11 21:26:29 +01:00
Roger Light
77aaec686e
Merge pull request #1224 from omenlabs/ALPN
Bridge TLS Application-Layer Protocol Negotiation
2019-04-11 11:08:15 +01:00
Roger A. Light
638ab2f969 Fix unexpected behaviour when reusing a mid after a publish is denied. 2019-04-10 22:33:31 +01:00
Roger A. Light
8a651ff6c3 Remove remnant from before the conversion to utlist. 2019-04-09 18:51:43 +01:00
Roger A. Light
ad3b7ec778 Fix Coverity Scan 1400486-1400487. Unused values. 2019-04-05 22:38:14 +01:00
Roger A. Light
0d3c7fe778 Fix Coverity 1302840. No effect comparison. 2019-04-05 22:18:20 +01:00
Roger A. Light
e4d0d52b01 Fix Coverity Scan 1400483-1400485.
Logically dead code.
2019-04-05 22:02:11 +01:00