Roger A. Light
ea553619fb
Basic client websockets tests.
4 years ago
Roger A. Light
eefafdeff7
Fix unix socket test.
4 years ago
Roger A. Light
e25cb05fc9
Command arg tests.
4 years ago
Roger A. Light
1ac099ebdd
More config parse errors.
4 years ago
Roger A. Light
2d045dbc85
Fix option name.
4 years ago
Roger A. Light
7bd9c5cce1
More config parse error tests.
4 years ago
Roger A. Light
5fab104467
Auth plugin v2, v3 testings.
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
Roger A. Light
93ed5721e2
No need to set keepalive in most tests.
4 years ago
Roger A. Light
6e8925c062
Test fix.
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
0f9e5dc65d
Improve test.
4 years ago
Roger A. Light
0f8733627a
Plugin persistence interface.
4 years ago
Roger A. Light
2501a64035
Merge branch 'master' into develop
4 years ago
Roger A. Light
affe6ece83
Add client msg int to allow easier ordering for plugins.
4 years ago
Roger A. Light
11975332d4
Fix mosquitto_topic_matches_sub2() not using the length parameters.
...
Closes #2364 . Thanks to Jens Alfke.
4 years ago
Roger A. Light
0d0a36906c
Add missing stubs.
4 years ago
Roger A. Light
e09390eda6
Split db__message_insert into incoming/outgoing.
4 years ago
Roger A. Light
9ad8d943be
Stored messages now always stored in a hash table.
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 Light
3ebc4f851c
Fix test.
4 years ago
Roger A. Light
a1288721ce
Fix tests
4 years ago
Roger A. Light
8ac11929cc
Merge branch 'master' into develop
4 years ago
Roger A. Light
b9b065d2cc
Compiler pedantry, and more checks in tests.
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 Light
51eda2bf79
Add more efficient keepalive check.
4 years ago
Roger A. Light
3b471c8669
Fix test
4 years ago
Roger A. Light
a1a190b482
Pointless whitespace tidy.
4 years ago
Roger A. Light
c28110d079
Fix test
4 years ago
Roger A. Light
56e5c52abe
Fix test.
4 years ago
Roger A. Light
e01542b6cf
Fix test.
4 years ago
Roger A. Light
0f2f77c945
Improve idle / mux timeout performance.
4 years ago
Roger Light
07f793a108
Fix protocol checks - bridge and CONNACK responses.
4 years ago
Roger A. Light
f7a57add81
Add NanoMQ crash test case.
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
1c6d74f208
Fix test
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
723b5d7081
Fix listener mount_point not being removed on outgoing messages.
...
Closes #2244 . Thanks to alflexRH.
4 years ago
Roger Light
93b2232bb9
Apply max_keepalive to MQTT v3.1.1 and v3.1 clients.
4 years ago
Roger A. Light
fc4099eafa
Speed up tests.
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
192a092d50
Add support for pattern ACLs to dynsec un/subscription ACLs.
4 years ago
Roger A. Light
a02aad0a9c
Add mosquitto_sub_matches_acl_with_pattern.
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
10045394cf
Easier testing with different valgrind tools.
4 years ago
Roger A. Light
f90e55bd36
Reduce memory allocations when sending packets.
4 years ago
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.
4 years ago
Roger A. Light
b3045d1adf
Fix pattern matching with invalid prefix.
4 years ago
Roger A. Light
0cd2619401
Add %c and %u support to dynsec publish ACLs.
4 years ago
Roger A. Light
6502d6e5f4
Add mosquitto_topic_matches_sub_with_pattern()
...
And use it in the default security checks.
4 years ago
Roger A. Light
1ab6b28e26
Add missing test file.
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
906a515704
Simplify client message properties, only one is used.
4 years ago
Roger A. Light
fb76fd66b9
Remove some unused struct members.
4 years ago
Roger A. Light
5177dd4d40
Use random last db id, unless later overwritten by persistence.
4 years ago
Roger A. Light
cb2623db47
Check whether broker should be started.
4 years ago
Roger A. Light
0d3870585b
Plugin delayed authentication.
4 years ago
Roger Light
0eb7391e71
Fix tests and db_dump compilation.
4 years ago
Roger A. Light
8a03b5ad5c
Function for checking if a context is connected.
4 years ago
Roger Light
ef7662ca8e
Merge branch 'master' into develop
4 years ago
Roger A. Light
1677bb85f4
Fix test.
5 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
7842323c0d
Test fixes.
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 A. Light
1289d23b66
Convert tests to be able to run on the same broker where possible.
5 years ago
Roger Light
4c60fad52b
Enforce receive maximum on MQTT v5.
5 years ago
Roger Light
fecf550cad
Fix test.
5 years ago
Roger A. Light
fd036b9435
Merge branch 'fixes' into develop
5 years ago
Roger A. Light
e401def06d
Fix QoS 0 messages not being delivered when max_queued_bytes was configured.
...
Closes #2123 . Thanks to quackgizmo.
5 years ago
Roger A. Light
7baca428da
Remove obsolete tests.
5 years ago
Roger A. Light
3f84ad006d
Add `on_pre_connect()` callback.
...
This allows clients to update usernames/passwords/TLS parameters prior
to reconnecting.
5 years ago
Roger A. Light
706a1f3f29
Fix more minor compiler warnings.
5 years ago
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.
5 years ago
Roger A. Light
3c58ac9308
Fix `message_size_limit` not applying to the Will payload.
...
Closes #2022 . Thanks to Umberto Morelli.
5 years ago
Roger A. Light
0aecb51fcd
Rename reload_type -> bridge_reload_type, plus doc updates.
5 years ago
Abilio Marques
008342c2f3
allow bridge configuration reload
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
5 years ago
Roger A. Light
5e6b34f81a
Fix test.
5 years ago
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.
5 years ago
Roger A. Light
04c110183c
Bridge support for MQTT v5 maximum-qos.
5 years ago
Roger A. Light
7d05f70fe1
Fix mosq_test.py to_string() on Python 3
5 years ago
Roger A. Light
ed28c416e9
Null checks in client tests.
5 years ago
Roger A. Light
6bd45f0092
dynsec: Better test coverage
5 years ago
Roger A. Light
aaf30dc622
dynsec: Fix incorrect test command.
5 years ago
Roger A. Light
31e3fa4d07
dynsec: Invalid UTF-8 tests, plus some fixes.
5 years ago
Roger A. Light
c303c67461
dynsec: Return group not found on getGroup.
5 years ago
Roger A. Light
ad8cf9fc03
dynsec: Start of invalid role commands tests.
5 years ago
Roger A. Light
423e1a00d2
dynsec: Tests for group commands with invalid params, plus fixes.
5 years ago
Roger A. Light
7ccf4c44fd
dynsec: Tests for invalid client command input.
5 years ago
Roger A. Light
f6e17b81b9
dynsec: More modifyRole test coverage.
5 years ago
Roger A. Light
6cffd4264e
dynsec: ACL tests.
5 years ago
Roger A. Light
d8775b7d9c
dynsec: Consistent behaviour when setting clientid.
5 years ago
Roger A. Light
047c09bd32
dynsec: Anon group tests
5 years ago
Roger A. Light
2d7f146dfc
These tests shouldn't allow anon access.
5 years ago
Roger A. Light
15c6e58fa0
Only run dynsec tests if CJSON and TLS are available.
5 years ago
Roger A. Light
c3daa247c2
dynsec: Cover setClientId in 14-dynsec-auth test.
5 years ago
Roger A. Light
c1f0cb69d1
dynsec: ACL default access test.
5 years ago
Roger A. Light
81c4e2b6ac
dynsec: Commit client auth tests.
5 years ago
Roger A. Light
584cf51ba7
Update to EPL-2.0
5 years ago
Roger A. Light
fdd624cec4
Fix tests now uhpa has been removed.
5 years ago
Roger A. Light
f2630f9c58
Attempt to fix travis on osx and unreliable test.
5 years ago
Roger A. Light
eee34613b4
Fix building of old tests.
5 years ago
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.
5 years ago
Roger A. Light
255ae24a6d
Fix basic dynsec tests.
5 years ago
Roger A. Light
4d9afc835b
Fix missing functions in test.
5 years ago
Roger A. Light
042c2733f2
Test and fix for message expiry not increasing send quota.
5 years ago
Roger A. Light
a1ad4cfcc4
Dynsec: Rename ACL types for clarity.
...
publishBrokerToClient -> publishClientReceive
publishClientToBroker -> publishClientSend
5 years ago
Roger A. Light
e3ed8879f2
Fix test compilation.
5 years ago
Roger A. Light
fdff255916
New dynamic security plugin.
5 years ago
Roger A. Light
3eb39b38da
Use atomics in test.
5 years ago
Roger A. Light
e104645279
msgps clients now report continuously.
5 years ago
Roger A. Light
899695261a
Fix invalid character conversions in test.
5 years ago
Roger A. Light
4ae8971ce1
The broker now sends the receive-maximum property for MQTT v5 CONNACKs.
5 years ago
Roger A. Light
4f61f6c161
Fix conversion errors.
5 years ago
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
5 years ago
Roger A. Light
c6b94f6266
Fix running of basic client tests.
5 years ago
Roger A. Light
79028bcb14
Fix duplicate frees in tests.
5 years ago
Roger A. Light
a65f946e83
Move headers to own directory.
5 years ago
Roger A. Light
c90e49af1b
Merge remote-tracking branch 'origin/fixes' into develop
5 years ago
Roger A. Light
54b9571516
Enable TLS with certfile+keyfile, not capath/cafile.
5 years ago
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.
5 years ago
Roger A. Light
97bd527df0
Breaking: allow_anonymous defaults to false.
5 years ago
Roger A. Light
1b269270bc
Sort failed tests when reporting.
5 years ago
Roger A. Light
4372a2b925
Default test timeout of 60s by default is too long.
5 years ago
Roger A. Light
f87ef68fae
Detect closed socket in tests.
5 years ago
Roger A. Light
cec24116d8
Add very basic client tests.
5 years ago
Roger A. Light
5daa5ee162
Add support for $CONTROL/ topics in plugins.
5 years ago
Roger A. Light
748e5f69c8
Fix acl-access-variants test.
5 years ago
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>
5 years ago
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.
5 years ago
Roger A. Light
69f84bbca9
Simplify "expect_packet" tests.
5 years ago
Roger A. Light
ba2c00137d
Fix client test leaks.
5 years ago
Roger A. Light
2dc8d2a19a
Allow plugins to send messages to specific clients.
5 years ago