Commit Graph

117 Commits (8a6bb872fe1b2a878ada7ac97841320b027950cf)

Author SHA1 Message Date
Roger A. Light 8a6bb872fe Invalid/unsupported plugin tests. 3 years ago
Roger A. Light 907b754566 Add test for MOSQ_EVT_PSK_KEY 3 years ago
Roger A. Light 7fb760ef27 Split config parse tests by tls/not. 3 years ago
Roger A. Light 16feb14a57 Persistence interface updates and sqlite plugin fixes
The MOSQ_EVT_PERSIST_CLIENT_MSG_CLEAR event has been removed, due to
never being called. It is the responsibility of the plugin to remove
client subscriptions and client messages when the client is removed.

Lots of persist test improvements and additions - mostly checking item
counts.
3 years ago
Roger A. Light ef078b31b5 Make persistence tests easier to use for other plugins. 3 years ago
Roger A. Light fd68bf00c7 Merge branch 'master' into develop 3 years ago
Roger A. Light 351911bd8f Fix incorrect return code being sent in DISCONNECT.
This is for when a client session is taken over.

Closes #2607. Thanks to der-b
3 years ago
Roger A. Light 34391080d6 Add dynsec init by simple file. 3 years ago
Roger A. Light 0433b8ee9b Update changelog, fix usage of m_set_clientid(), add test. 4 years ago
Roger A. Light 9b2c64135f listPlugins command, and test. 4 years ago
Roger A. Light 82658805c7 listListeners command. 4 years ago
Roger A. Light db6b59a336 sqlite retain clear test. 4 years ago
Roger A. Light dc906c5221 Sqlite persistence plugin. 4 years ago
Roger A. Light 0a0f4ead42 Plugin interface interface and test improvements. 4 years ago
Roger A. Light e25cb05fc9 Command arg tests. 4 years ago
Roger A. Light 4cd2f85e77 Unix socket connect test. 4 years ago
Roger A. Light aa7e09948b Start of config file parsing error tests. 4 years ago
Roger A. Light 249edc6ba2 include_dir test. 4 years ago
Xavier Dooms bff71fd99f support plugin tick callbacks with per_listener_settings enabled
add tests for the plugin tick

Signed-off-by: Xavier Dooms <dooms.xavier@gmail.com>
4 years ago
Roger A. Light 0f8733627a Plugin persistence interface. 4 years ago
Roger A. Light 786d468570 MID reuse test. 4 years ago
Roger A. Light 34b41a3b01 Dynsec: Add ability to deny wildcard subscriptions for a role 4 years ago
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.
4 years ago
Roger A. Light 8ac11929cc Merge branch 'master' into develop 4 years ago
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.
4 years ago
Roger Light 5cae4d1d81 Fix broker sending duplicate CONNACK on failed MQTT v5 reauthentication.
Closes #2339. Thanks to hvxl.
4 years ago
Roger A. Light 7b58eee414 Fix problem parsing config files with Windows line endings.
Closes #2297. Thanks to all the people who commented there!
4 years ago
Roger A. Light 330bf6efdc Various fixes around inflight quota management.
Closes #2306. Thanks to canique.
4 years ago
Roger A. Light 7551a29985 Fix LWT messages not being delivered if `per_listener_settings` was set to true
Closes #2314. Thanks to Marc Hamel.
4 years ago
Roger A. Light 4f24ffef2f Add `disable_client_cert_date_checks` option. 4 years ago
Roger A. Light ba936a869d Add `accept_protocol_versions` option. 4 years ago
Roger A. Light f552ec48b1 Add global_max_connections option. 4 years ago
Roger A. Light 02685d49b6 Add `global_max_clients` option.
This allows limiting client sessions globally on the broker.
4 years ago
Roger A. Light aa29b45e70 Merge branch 'master' into develop 4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Roger Light ba2ca33671 Strict protocol compliance fixes, and extensive test suite. 4 years ago
Roger Light 93b2232bb9 Apply max_keepalive to MQTT v3.1.1 and v3.1 clients. 4 years ago
Roger A. Light 79542158f4 Fix `max_connections` option not being correctly counted. 4 years ago
Roger A. Light eec1ef1c55 Parallelise bridge clean session test. 4 years ago
Roger A. Light 8cd2411ab6 Tests should typically use `listener` instead of `port`. 4 years ago
Roger A. Light 49065f03a8 Merge remote-tracking branch 'origin/fixes' into develop 4 years ago
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.
4 years ago
Roger A. Light 42163634c7 Fix leak on crafted MQTT v5 CONNECT.
If a MQTT v5 client connects with a crafted CONNECT packet a memory leak
will occur.

Thanks to Kathrin Kleinhammer.
4 years ago
Roger A. Light 0d3870585b Plugin delayed authentication. 4 years ago
Roger Light ef7662ca8e Merge branch 'master' into develop 4 years ago
Roger A. Light 6a4a547892 Fix segfault on client sending malformed CONNACk.
CVE-xxxx-xxxx: If an authenticated client connected with MQTT v5 sent a
malformed CONNACK message to the broker a NULL pointer dereference occurred,
most likely resulting in a segfault. This will be updated with the CVE
number when it is assigned.
Affects versions 2.0.0 to 2.0.9 inclusive.

Closes #2163. Thanks to Bryan Pearson.
5 years ago
Roger A. Light de9780343b Add support for MQTT v5 broker->client topic aliases.
This is on a first-come-first-served basis for now.
Also broker to bridge topic aliases.
5 years ago
Roger Light 4c60fad52b Enforce receive maximum on MQTT v5. 5 years ago