Commit graph

472 commits

Author SHA1 Message Date
Roger A. Light
e09390eda6 Split db__message_insert into incoming/outgoing. 2021-11-11 14:47:02 +00:00
Roger A. Light
9ad8d943be Stored messages now always stored in a hash table. 2021-11-11 11:20:30 +00:00
Roger A. Light
786d468570 MID reuse test. 2021-11-10 15:58:10 +00:00
Roger A. Light
34b41a3b01 Dynsec: Add ability to deny wildcard subscriptions for a role 2021-11-10 11:20:25 +00:00
Roger Light
dcff8dfd38 Implement plugin wrappers for v2, v3, v4
This means the internal plugin interface is simpler and is translated to each of the older interfaces if needed.
2021-11-09 17:11:20 +00:00
Roger Light
3ebc4f851c Fix test. 2021-11-03 09:50:09 +00:00
Roger A. Light
a1288721ce Fix tests 2021-10-27 17:22:58 +01:00
Roger A. Light
8ac11929cc Merge branch 'master' into develop 2021-10-27 17:19:33 +01:00
Roger A. Light
b9b065d2cc Compiler pedantry, and more checks in tests. 2021-10-14 11:39:46 +01:00
Roger Light
9d3f292b39 Send DISCONNECT With session-takeover return code.
This is for MQTT v5 clients when a client connects with the same client id.

Closes #2340. Thanks to hvxl.
2021-10-12 23:20:53 +01:00
Roger Light
5cae4d1d81 Fix broker sending duplicate CONNACK on failed MQTT v5 reauthentication.
Closes #2339. Thanks to hvxl.
2021-10-12 22:33:05 +01:00
Roger Light
51eda2bf79 Add more efficient keepalive check. 2021-10-12 17:19:42 +01:00
Roger A. Light
3b471c8669 Fix test 2021-10-06 09:54:19 +01:00
Roger A. Light
a1a190b482 Pointless whitespace tidy. 2021-10-05 15:20:37 +01:00
Roger A. Light
c28110d079 Fix test 2021-10-01 17:24:19 +01:00
Roger A. Light
56e5c52abe Fix test. 2021-10-01 16:34:17 +01:00
Roger A. Light
e01542b6cf Fix test. 2021-10-01 16:10:59 +01:00
Roger A. Light
0f2f77c945 Improve idle / mux timeout performance. 2021-09-29 16:07:48 +01:00
Roger Light
07f793a108 Fix protocol checks - bridge and CONNACK responses. 2021-09-27 22:18:59 +01:00
Roger A. Light
f7a57add81 Add NanoMQ crash test case. 2021-09-24 21:57:28 +01:00
Roger A. Light
7b58eee414 Fix problem parsing config files with Windows line endings.
Closes #2297. Thanks to all the people who commented there!
2021-09-23 11:40:40 +01:00
Roger A. Light
330bf6efdc Various fixes around inflight quota management.
Closes #2306. Thanks to canique.
2021-09-22 17:20:24 +01:00
Roger A. Light
7551a29985 Fix LWT messages not being delivered if per_listener_settings was set to true
Closes #2314. Thanks to Marc Hamel.
2021-09-21 22:51:25 +01:00
Roger A. Light
4f24ffef2f Add disable_client_cert_date_checks option. 2021-09-21 12:16:42 +01:00
Roger A. Light
ba936a869d Add accept_protocol_versions option. 2021-09-21 11:07:54 +01:00
Roger A. Light
f552ec48b1 Add global_max_connections option. 2021-09-17 16:06:02 +01:00
Roger A. Light
02685d49b6 Add global_max_clients option.
This allows limiting client sessions globally on the broker.
2021-09-17 16:01:37 +01:00
Roger A. Light
1c6d74f208 Fix test 2021-09-13 16:43:38 +01:00
Roger A. Light
aa29b45e70 Merge branch 'master' into develop 2021-09-07 19:17:11 +01:00
Roger A. Light
37b5aedcb6 Fix for #575314.
Incoming QoS 2 messages that had not completed the QoS flow were not being
checked for ACL access when a clean session=False client was reconnecting.

Closes #575314.
2021-08-30 16:14:27 +01:00
Roger A. Light
9d6a73f9f7 Fix CONNECT performance with many user-properties.
An MQTT v5 client connecting with a large number of user-property properties
could cause excessive CPU usage, leading to a loss of performance and
possible denial of service. This has been fixed.
2021-08-26 12:17:42 +01:00
Roger Light
32af599c81 Fix $share subscriptions not being recovered for durable clients.
If a plugin had granted ACL subscription access to a
durable/non-clean-session client, then removed that access, the client would
keep its existing subscription. This has been fixed.
2021-08-26 12:17:26 +01:00
Roger Light
ba2ca33671 Strict protocol compliance fixes, and extensive test suite. 2021-08-23 23:19:28 +01:00
Roger Light
723b5d7081 Fix listener mount_point not being removed on outgoing messages.
Closes #2244. Thanks to alflexRH.
2021-08-22 08:23:13 +01:00
Roger Light
93b2232bb9 Apply max_keepalive to MQTT v3.1.1 and v3.1 clients. 2021-08-20 23:27:14 +01:00
Roger A. Light
fc4099eafa Speed up tests. 2021-08-17 17:11:47 +01:00
Roger A. Light
79542158f4 Fix max_connections option not being correctly counted. 2021-08-17 13:10:18 +01:00
Roger A. Light
eec1ef1c55 Parallelise bridge clean session test. 2021-07-28 15:54:21 +01:00
Roger A. Light
8cd2411ab6 Tests should typically use listener instead of port. 2021-07-28 14:20:01 +01:00
Roger A. Light
49065f03a8 Merge remote-tracking branch 'origin/fixes' into develop 2021-07-09 14:12:05 +01:00
Roger A. Light
192a092d50 Add support for pattern ACLs to dynsec un/subscription ACLs. 2021-07-08 21:55:39 +01:00
Roger A. Light
a02aad0a9c Add mosquitto_sub_matches_acl_with_pattern. 2021-07-08 17:45:50 +01:00
Roger A. Light
09fe737038 $share subscription with no-local not allowed.
Return protocol error if a client attemps to subscribe to a shared
subscription and also sets no-local.
2021-07-08 12:31:53 +01:00
Roger A. Light
10045394cf Easier testing with different valgrind tools. 2021-07-08 11:11:09 +01:00
Roger A. Light
f90e55bd36 Reduce memory allocations when sending packets. 2021-06-30 14:53:34 +01:00
Roger A. Light
e0309acebc Add mosquitto_sub_matches_acl()
This moves the sub matching sub code from the dynsec plugin to the library and broker, and removes all of the malloc calls at the same time.
2021-06-10 22:19:39 +01:00
Roger A. Light
b3045d1adf Fix pattern matching with invalid prefix. 2021-06-10 22:19:39 +01:00
Roger A. Light
0cd2619401 Add %c and %u support to dynsec publish ACLs. 2021-06-10 22:19:33 +01:00
Roger A. Light
6502d6e5f4 Add mosquitto_topic_matches_sub_with_pattern()
And use it in the default security checks.
2021-06-10 15:33:01 +01:00
Roger A. Light
1ab6b28e26 Add missing test file. 2021-06-09 14:22:21 +01:00