Commit Graph

361 Commits

Author SHA1 Message Date
Roger A. Light
17db97584e Fix client keepalive test using too low keepalive. 2020-01-30 15:06:15 +00:00
Roger A. Light
c8789180f3 Fix session expiry with very large expiry intervals.
Closes #1525. Thanks to Christoph Krey.
2019-12-12 09:40:37 +00:00
Roger A. Light
3f0c202aa5 Reduce heap allocation churn when tokenising topics. 2019-12-11 13:23:59 +00:00
Roger A. Light
9ee6e2725c Start of tests for adding subscriptions. 2019-12-04 11:02:52 +00:00
Roger A. Light
c0443637e8 Merge branch 'master'
Conflicts:
	ChangeLog.txt
	config.mk
	src/context.c
	src/loop.c
	src/subs.c
	test/broker/01-connect-bad-packet.py
	test/broker/02-subpub-qos1-bad-pubcomp.py
	test/broker/02-subpub-qos1-bad-pubrec.py
	test/broker/02-subpub-qos2-bad-puback-1.py
	test/broker/02-subpub-qos2-bad-puback-2.py
	test/broker/02-subpub-qos2-bad-pubcomp.py
	test/broker/02-subpub-qos2.py
	test/broker/07-will-null-topic.py
2019-12-03 13:59:05 +00:00
Roger Light
d92360dd8e Split sub and retain trees. 2019-11-22 14:07:15 +00:00
Roger A. Light
16dc5456bd Enable MQTT v5 in outgoing retain test. 2019-11-07 13:25:46 +00:00
Roger A. Light
2af260ba58 Add bridge_outgoing_retain option
This allows outgoing messages from a bridge to have the retain bit
completely disabled, which is useful when bridging to e.g. Amazon or
Google.
2019-11-07 11:59:29 +00:00
Roger A. Light
28c11f4cce Fix tests where broker suddenly disconnects client
This seems to be required just on more modern Python versions.
2019-11-06 14:07:07 +00:00
Roger A. Light
aceabcdef2 Tidy up async test outputs. 2019-11-06 13:37:35 +00:00
Jerome Malinge
fba1f6bc0a Fix test on invalid null will topic value in connect packet
Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:58:00 +01:00
Jerome Malinge
11dc077d15 Fix test on invalid reserved bit value in connect packet
Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:58 +01:00
Jerome Malinge
ce0b0d23d6 Add send of pubcomp in 02-subpub-qos2 script
To keep the broker session working while launching several tests on
the same broker, the last packet of this transaction must be sent.

Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:55 +01:00
Jerome Malinge
d76e5fd199 Fix way of sending packets in compliance tests
According to the documentation of python 3 socket::send method
(https://docs.python.org/3/library/socket.html#socket.socket.send),
the call to send must be retry until all data is sent while sending
packet with a "large" amount of data.

Signed-off-by: Jerome Malinge <gromgromm@yahoo.com>
2019-11-04 15:57:38 +01:00
Roger A. Light
b2a9daf1db 02 broker subpub tests with v5 support 2019-10-13 18:08:44 +01:00
Roger A. Light
b966455f21 02 broker subscribe tests with v5 support 2019-10-13 13:04:44 +01:00
Roger A. Light
3261c30d08 02 broker unsubscribe tests with v5 support 2019-10-13 12:58:40 +01:00
Roger A. Light
e0d0af54a5 01 broker tests with v5 support 2019-10-10 17:15:19 +01:00
Roger A. Light
7b73cd2bf7 04 broker tests with v5 support 2019-10-10 15:35:43 +01:00
Roger A. Light
b9360bb147 Fixes for 06 broker v5 tests 2019-10-10 14:51:32 +01:00
Roger A. Light
cae7ddeec1 10 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
feb79d5880 11 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
c453d2cb3e 07 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
48f1ca8538 05 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
16f57cc834 Simpler v5 session expiry in tests. 2019-10-10 14:20:00 +01:00
Roger A. Light
98d600099b 03 broker tests with v5 support 2019-10-10 14:20:00 +01:00
Roger A. Light
7ea5ba845b Add "ready" message to will takeover test. 2019-10-10 14:20:00 +01:00
Roger A. Light
09e95fff5a Add test for session takeover and wills. 2019-10-10 14:20:00 +01:00
Roger A. Light
87bd08b0e0 Add MQTT v5 support to bridge tests. 2019-10-09 13:31:23 +01:00
Roger A. Light
fad184c9c2 Bridge remapping refactoring and tests. 2019-10-03 16:46:15 +01:00
Roger A. Light
8463c33720 Refactor property remaining length calculation. 2019-10-03 10:36:24 +01:00
Roger A. Light
c471dfb201 Fix sub topics being limited to 200 chars instead of 200 levels
Closes #1441. Thanks to Christoph Krey.
2019-10-02 13:00:01 +01:00
Roger A. Light
093c8f90f5 Fix publish props not being passed to v5 msg callback for QoS 2 msgs.
Closes #1432. Thanks to Magnus Galåen.
2019-09-26 16:47:34 +01:00
Roger A. Light
4db1e80410 More allow_zero_length_clientid fixes.
Closes #1429. Thanks to Dustin Sallings.
2019-09-26 11:53:58 +01:00
Roger A. Light
539c1b9bcb Tests for zero length client id, plus fix for one case where it was allowed 2019-09-26 11:14:52 +01:00
Roger A. Light
8dcb993274 Some tests weren't using python3. 2019-09-24 22:51:55 +01:00
Roger A. Light
1a8c44b84f Fix regression on use of mosquitto_connect_async() not working.
Closes #1415 and #1422. Thanks to Karl Palsson, Till Zimmermann and Liam Fry.
2019-09-24 20:15:04 +01:00
Roger A. Light
3e094991c4 Hopeful fix for travis. 2019-09-17 12:50:48 +01:00
Roger A. Light
e479a80cbe Extra test for issue 1401. 2019-09-17 12:50:37 +01:00
Roger A. Light
1066750931 Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
Closes #1412. Thanks to Ryan Shaw.
2019-09-15 22:57:36 +01:00
Roger A. Light
9bbf5bb65f Fix 11-message-expiry test when running under valgrind 2019-09-11 08:51:51 +01:00
Roger A. Light
367fc0cffc Updated SSL test files, plus a new empty crl file. 2019-09-10 13:34:14 +01:00
Roger A. Light
3c35c6cdd9 Fix Will not being sent if will delay greater than session expiry.
Closes #1401. Thanks to Will Lisac.
2019-09-05 12:46:46 +01:00
Roger A. Light
f6b22f8248 Fix clients using use_identity_as_* being disconnected on SIGHUP.
Closes #1402. Thanks to twegener-embertec.
2019-09-05 11:37:43 +01:00
Roger A. Light
be07c842d1 Don't error trying to cleanup missing persistence file. 2019-08-07 11:32:26 +01:00
Roger A. Light
50695f8103 Fix v5 DISCONNECT packets with remaining length == 2.
These were being treated as a protocol error.

Closes #1367. Thanks to Frank Pagliughi.
2019-08-05 21:13:23 +01:00
Roger A. Light
efc8ed39af Fix incoming msgs not being removed when there are no subs
Fix incoming messages not being removed for a client if the topic being
published to does not have any subscribers.

Closes #1322. Thanks to Yannic Schröder.
2019-07-31 18:52:51 +01:00
Roger A. Light
696a9b8019 Fix incomgin QoS 2 with max_inflight_messages set to 1.
Closes #1332. Thanks to xmas79.
2019-07-30 23:25:12 +01:00
Roger A. Light
552059e17d Pedantic test fixes from failgrind. 2019-07-30 15:01:12 +01:00
Roger A. Light
f14a47c015 Further attempt 2019-05-29 22:02:40 +01:00
Roger A. Light
18b897e5e3 Attempt to fix 11-message-expiry for travis. 2019-05-29 21:31:27 +01:00
Roger A. Light
de695af8c0 Fix zero length client ids being rejected for MQTT v5 clients.
This was happening when clean start was set to true.
2019-05-29 16:07:45 +01:00
Roger A. Light
e51e40e95c Fix incorrect shared subscription topic of '$shared.' 2019-05-29 15:40:17 +01:00
Roger A. Light
e43a278652 Fix test compilation. 2019-05-28 22:12:13 +01:00
Roger A. Light
999c478c88 Fixes for bug #1273
* Fix Will message for a persistent client incorrectly being sent when the client reconnects after a clean disconnect.
* Fix Will message for a persistent client not being sent on disconnect.
* Fix mosquitto_pub not using the `-c` option.

Thanks to Yannic Schröder.

Closes #1273.
2019-05-21 17:08:52 +01:00
Roger A. Light
41cb9bf750 Simplify ping checking in tests. 2019-05-13 21:17:04 +01:00
Roger A. Light
cd3877e628 Fix detection of incoming v3.1/v3.1.1 bridges.
Closes #1263. Thanks to vrst37.
2019-05-08 11:53:51 +01:00
Roger A. Light
f64d3b1e5c Fix broker originated messages not being sent.
This occurred when `check_retain_source` was set to true.

Closes #1245. Thanks to Christoph Krey.
2019-04-30 13:25:54 +01:00
Roger A. Light
ab77b5c000 Test for Will property usage. 2019-04-30 13:25:32 +01:00
Roger A. Light
3b4a5419c3 Build fixes around CFLAGS et al.
- Split CFLAGS and CPPFLAGS, and LDFLAGS and LDADD/LIBADD.
- test/unit now respects CPPFLAGS and LDFLAGS.

Closes #1232. Thanks to Greg Troxel.
2019-04-26 17:06:54 +01:00
Roger A. Light
d6c7923d16 Add make check and document testing procedure.
Also support test target in cmake.
2019-04-26 16:25:35 +01:00
Roger A. Light
17eae08c5e Test build fixes. 2019-04-17 21:25:25 +01:00
Roger A. Light
56757df512 Bump version and changelog details. 2019-04-17 17:44:02 +01:00
Roger A. Light
689989cc56 Fix inflight quota inc/dec for both broker and library. 2019-04-17 16:15:41 +01:00
Roger A. Light
8531cb1d79 Separate broker message queues into in/out.
This allows and includes better flow control handling for QoS>0.
2019-04-17 09:29:34 +01:00
Roger A. Light
8b532705d9 Fix test datatype. 2019-04-11 11:04:16 +01:00
Roger A. Light
969885d967 Crude random client testing
This needs a lot of improvement, but is a reasonable start.
2019-04-10 22:51:33 +01:00
Roger A. Light
638ab2f969 Fix unexpected behaviour when reusing a mid after a publish is denied. 2019-04-10 22:33:31 +01:00
Roger A. Light
052c2ffa05 Clean unit test directory. 2019-04-10 08:40:55 +01:00
Roger A. Light
2e7dcee342 Multistep auth, plus reauth, plus tests. 2019-04-04 22:08:55 +01:00
Roger A. Light
c1776a0b39 Add reauth parameter for extended auth. 2019-04-04 15:09:53 +01:00
Roger A. Light
0f6e51d582 Code and tests for returning single stage auth data back to client. 2019-04-04 14:36:03 +01:00
Roger A. Light
494f35bd8d Add mosquitto_set_username() plugin function. 2019-04-04 12:39:38 +01:00
Roger A. Light
a29a7dadc6 Basic plugin support for single step extended auth. 2019-04-04 11:37:04 +01:00
Roger A. Light
2fcf246f07 Fix potential crashes on memory alloc failure in tests only. 2019-04-03 16:14:15 +01:00
Roger A. Light
fb8a2baaad Refactor client msgs to use utlist to reduce code complexity. 2019-04-03 14:13:12 +01:00
Roger A. Light
fe854d3a64 Refactor handle__connect() ahead of extended auth changes. 2019-04-03 10:50:19 +01:00
Roger A. Light
636d0f1f74 Fix printing on broker tests. 2019-04-02 14:06:28 +01:00
Roger A. Light
a8dce08618 Always kill broker on failure. 2019-04-02 13:58:44 +01:00
Roger A. Light
950dabcf9b Test for leaking will on connect denied. 2019-04-02 13:11:20 +01:00
Roger A. Light
e5f58a8ff3 Test for unsupported extended auth. 2019-04-02 10:22:16 +01:00
Roger A. Light
0d7523c309 Use helpers in all tests. 2019-04-02 10:22:16 +01:00
Roger A. Light
7e49d91898 Convert tests to Python 3 2019-03-28 21:32:12 +00:00
Roger A. Light
75c2a39d2c Send topic alias maximum from the broker. 2019-03-27 17:38:35 +00:00
Roger A. Light
2a5995106a Fix Coverity Scan defect 140436. Null dereference. 2019-03-26 12:05:23 +00:00
Roger A. Light
43c159b9a5 Support and tests for saving message expiry interval. 2019-03-25 23:17:57 +00:00
Roger A. Light
5f0cb3a44c Possible fix for errant test. 2019-03-25 07:18:29 +00:00
Roger A. Light
61fe26474e Test and fix for client message prop persistence. 2019-03-25 06:55:45 +00:00
Roger A. Light
5841da2c36 Tests for persisting message store properties. 2019-03-24 21:38:00 +00:00
Roger A. Light
efb20625fb Code and tests for persisting client msg properties. 2019-03-23 22:52:08 +00:00
Roger A. Light
48253bc12c Persist message store publish properties. 2019-03-21 21:43:36 +00:00
Roger A. Light
2f15a7be2b Add subscription-identifier and options to persistence. 2019-03-21 14:19:48 +00:00
Roger A. Light
214a5f3aab v5 persistence file format
This includes changes to improve read/write performance.
It is not complete, and will have further changes to add properties and anything else required for MQTT v5.
2019-03-21 00:35:56 +00:00
Roger A. Light
e249ca7e91 Separate the persistence actual writing functions. 2019-03-19 16:27:34 +00:00
Roger A. Light
7a53b28080 Start of persistence writing tests. 2019-03-19 16:27:34 +00:00
Roger A. Light
320ddc1303 Merge branch 'master'
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	client/Makefile
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.h
	lib/mqtt3_protocol.h
	lib/util_mosq.c
	set-version.sh
	snap/snapcraft.yaml
	src/bridge.c
	src/database.c
	src/handle_connack.c
	src/loop.c
	src/persist.c
	test/broker/Makefile
2019-03-16 10:05:38 +00:00
Roger A. Light
a7d0660749 Separate out persist reading code from restoring code. 2019-03-16 09:42:15 +00:00
Roger A. Light
9411d94842 Start of tests for persistence reading. 2019-03-14 20:57:25 +00:00
Roger A. Light
c944f840a6 Don't advertise shared subs as unavailable any more. 2019-03-14 10:58:15 +00:00
Roger Light
8a8d13cf96 Shared subscription support. 2019-03-14 06:48:33 +00:00