Commit Graph

246 Commits

Author SHA1 Message Date
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
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
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
f2630f9c58 Attempt to fix travis on osx and unreliable test. 2020-11-23 22:19:39 +00:00
Roger A. Light
255ae24a6d Fix basic dynsec tests. 2020-11-05 23:48:11 +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
4ae8971ce1 The broker now sends the receive-maximum property for MQTT v5 CONNACKs. 2020-10-21 13:19:07 +01:00
Roger A. Light
f18f1a08a9 Merge branch 'feature/add-deny-option-for-acl' of git://github.com/BrandtHill/mosquitto into BrandtHill-feature/add-deny-option-for-acl 2020-10-14 11:30:16 +01:00
Roger A. Light
a65f946e83 Move headers to own directory. 2020-10-07 22:06:01 +01:00
Roger A. Light
c90e49af1b Merge remote-tracking branch 'origin/fixes' into develop 2020-09-24 17:03:14 +01:00
Roger A. Light
cf1c156765 New plugin interface
This is not specific to authentication, and allows plugins greater flexibility in what events they are interested in. It also adds message handling, and $CONTROL handling.
2020-09-22 14:49:28 +01:00
Roger A. Light
97bd527df0 Breaking: allow_anonymous defaults to false. 2020-09-17 11:29:32 +01:00
Roger A. Light
4372a2b925 Default test timeout of 60s by default is too long. 2020-09-16 14:45:22 +01:00
Roger A. Light
5daa5ee162 Add support for $CONTROL/ topics in plugins. 2020-09-10 15:32:47 +01:00
Roger A. Light
748e5f69c8 Fix acl-access-variants test. 2020-09-07 16:11:18 +01:00
Brandt Hill
16eecfcbc5 Add 'deny' as an option for topics/patterns in acl file to allow certain topics to be explicitly denied when they might otherwise be allowed through a more open read/write/readwrite option. Example: 'topic readwrite test/#' and 'topic deny test/hello/#' may be added so that a user can read/write to all test/# topics, except for test/hello/#.
Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>

Change variable name for clarity. Remember to initialize bool (I'm bad at C).

Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>

Add documentation to config man page

Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>

Add test case for deny option

Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>

Add deny acls to top of the list to preserve early exit

Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>

change comments

Signed-off-by: Brandt Hill <brandtlarsonhill@gmail.com>
2020-08-17 00:13:10 -05:00
Roger Light
58aa41c813 Optimise use of db__message_write()
New messages are now queued for clients when old ones are sent, rather than on every iteration of the main loop. This produces good performance improvements.
2020-08-12 15:29:08 +01:00
Roger A. Light
69f84bbca9 Simplify "expect_packet" tests. 2020-08-12 15:18:18 +01:00
Roger A. Light
2dc8d2a19a Allow plugins to send messages to specific clients. 2020-08-12 15:18:17 +01:00
Roger A. Light
84e4ba2c1e Send DISCONNECT with malformed-packet reason code on bad PUBLISHes. 2020-08-02 23:12:47 +01:00
Roger A. Light
b1e9377a20 Send DISCONNECT with malformed-packet reason code on bad SUBSCRIBEs. 2020-08-02 15:10:12 +01:00
Roger A. Light
8416b007ec Send DISCONNECT with malformed-packet reason code on bad UNSUBSCRIBEs. 2020-08-02 14:22:40 +01:00
Roger A. Light
0edb3e49e7 Remove debug mode 2020-07-16 11:23:25 +01:00
Roger A. Light
fdaeaee6dd Fix test. 2020-04-07 16:10:02 +01:00
Karl Palsson
07d73c7e3a bridge: support bridge local clean session
This adds the ability to separating bridge clean session settings between
the local and remote endpoints.  Some broker implmentations refuse to allow
non-clean sessions, as they don't support storing messages to be sent to
the connecting broker.  However, this doesn't mean that the local
broker can't be queueing messages to send _out_ to the remote broker.

This PR adds a new bridge connection setting, local_cleansession, that
allows controlling this split. Naming is chosen to be local_ in keeping
with the other local_ settings for bridges.

A test for the six cases of queued/not queued messages in both
directions is added, but v5 testing is currently disabled.  The changes
to support the split are ~independent of protocol version.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-20 12:35:06 +00:00
Karl Palsson
3d45c3186c test/broker: align identical code
06-bridge-b2br-disconnect-qos1 and
06-bridge-br2b-disconnect-qos1 have ~identical header code.

unify the identical bits to make it easier to visually see this.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-20 10:47:11 +00:00