Commit Graph

411 Commits

Author SHA1 Message Date
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
1ab6b28e26 Add missing test file. 2021-06-09 14:22:21 +01:00
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.
2021-06-08 22:26:09 +01:00
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.
2021-04-03 11:14:27 +01:00
Roger A. Light
e401def06d Fix QoS 0 messages not being delivered when max_queued_bytes was configured.
Closes #2123. Thanks to quackgizmo.
2021-03-08 23:23:45 +00:00
Roger A. Light
7baca428da Remove obsolete tests. 2021-03-04 09:49:29 +00:00
Roger A. Light
706a1f3f29 Fix more minor compiler warnings. 2021-01-21 13:33:54 +00:00
Roger A. Light
cf1098eff1 Send protocol error on topic alias not found.
The error topic-alias-invalid was being sent if an MQTT v5 client published
a message with empty topic and topic alias set, but the topic alias hadn't
already been configured on the broker. This has been fixed to send a
protocol error, as per section 3.3.4 of the specification.
2021-01-20 10:28:40 +00:00
Roger A. Light
3c58ac9308 Fix message_size_limit not applying to the Will payload.
Closes #2022. Thanks to Umberto Morelli.
2021-01-19 11:51:50 +00:00
Roger A. Light
5e6b34f81a Fix test. 2021-01-11 14:31:41 +00:00
Roger Light
113603168b Fix LWT not being sent on client takeover.
This was not happening for the case when the existing session wasn't
being continued.

Closes #1946. Thanks to Rory Piper.
2020-12-13 23:11:02 +00:00
Roger A. Light
04c110183c Bridge support for MQTT v5 maximum-qos. 2020-12-01 18:15:29 +00:00
Roger A. Light
7d05f70fe1 Fix mosq_test.py to_string() on Python 3 2020-12-01 14:27:39 +00:00
Roger A. Light
ed28c416e9 Null checks in client tests. 2020-12-01 09:48:11 +00:00
Roger A. Light
6bd45f0092 dynsec: Better test coverage 2020-11-30 17:15:43 +00:00
Roger A. Light
aaf30dc622 dynsec: Fix incorrect test command. 2020-11-30 13:14:14 +00:00
Roger A. Light
31e3fa4d07 dynsec: Invalid UTF-8 tests, plus some fixes. 2020-11-29 23:16:52 +00:00
Roger A. Light
c303c67461 dynsec: Return group not found on getGroup. 2020-11-28 00:34:53 +00:00
Roger A. Light
ad8cf9fc03 dynsec: Start of invalid role commands tests. 2020-11-28 00:34:33 +00:00
Roger A. Light
423e1a00d2 dynsec: Tests for group commands with invalid params, plus fixes. 2020-11-28 00:01:58 +00:00
Roger A. Light
7ccf4c44fd dynsec: Tests for invalid client command input. 2020-11-27 14:35:07 +00:00
Roger A. Light
f6e17b81b9 dynsec: More modifyRole test coverage. 2020-11-26 17:24:39 +00:00
Roger A. Light
6cffd4264e dynsec: ACL tests. 2020-11-26 17:24:20 +00:00
Roger A. Light
d8775b7d9c dynsec: Consistent behaviour when setting clientid. 2020-11-26 12:18:57 +00:00
Roger A. Light
047c09bd32 dynsec: Anon group tests 2020-11-26 12:18:20 +00:00
Roger A. Light
2d7f146dfc These tests shouldn't allow anon access. 2020-11-26 10:27:54 +00:00
Roger A. Light
15c6e58fa0 Only run dynsec tests if CJSON and TLS are available. 2020-11-26 10:08:29 +00:00
Roger A. Light
c3daa247c2 dynsec: Cover setClientId in 14-dynsec-auth test. 2020-11-26 00:13:40 +00:00
Roger A. Light
c1f0cb69d1 dynsec: ACL default access test. 2020-11-25 23:54:43 +00:00
Roger A. Light
81c4e2b6ac dynsec: Commit client auth tests. 2020-11-25 22:01:26 +00:00
Roger A. Light
584cf51ba7 Update to EPL-2.0 2020-11-25 17:34:21 +00:00
Roger A. Light
fdd624cec4 Fix tests now uhpa has been removed. 2020-11-25 09:19:05 +00:00
Roger A. Light
f2630f9c58 Attempt to fix travis on osx and unreliable test. 2020-11-23 22:19:39 +00:00
Roger A. Light
eee34613b4 Fix building of old tests. 2020-11-12 21:57:54 +00:00
Roger A. Light
b816d46508 Use db as a global var instead of passing to functions.
This allows a big swath of ifdefs to be removed. It also means savings as the db var is not passed around all of the time, and makes it easier to remove the final broker call to mosquitto_time() call in packet_mosq.c. In one test this reduced the calls to mosquitto_time() from 295k to 48k.
2020-11-06 17:16:23 +00:00
Roger A. Light
255ae24a6d Fix basic dynsec tests. 2020-11-05 23:48:11 +00:00
Roger A. Light
4d9afc835b Fix missing functions in test. 2020-11-05 09:06:51 +00:00
Roger A. Light
042c2733f2 Test and fix for message expiry not increasing send quota. 2020-11-02 23:09:18 +00:00
Roger A. Light
a1ad4cfcc4 Dynsec: Rename ACL types for clarity.
publishBrokerToClient -> publishClientReceive
publishClientToBroker -> publishClientSend
2020-10-28 11:03:44 +00:00
Roger A. Light
e3ed8879f2 Fix test compilation. 2020-10-27 15:35:48 +00:00
Roger A. Light
fdff255916 New dynamic security plugin. 2020-10-27 00:54:55 +00:00
Roger A. Light
3eb39b38da Use atomics in test. 2020-10-21 21:16:58 +01:00
Roger A. Light
e104645279 msgps clients now report continuously. 2020-10-21 21:16:57 +01:00
Roger A. Light
899695261a Fix invalid character conversions in test. 2020-10-21 13:19:28 +01:00
Roger A. Light
4ae8971ce1 The broker now sends the receive-maximum property for MQTT v5 CONNACKs. 2020-10-21 13:19:07 +01:00