Commit Graph

300 Commits

Author SHA1 Message Date
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
Roger A. Light
2ea97a6cd9 Check for authentication method on CONNECT, and reject. 2019-03-06 16:12:36 +00:00
Roger A. Light
ac91144495 Session expiry interval support - not working for file persistence. 2019-03-06 14:47:16 +00:00
Roger A. Light
105ad17dc6 Tests and support for QoS 1 reporting of no subscribers on publish. 2019-03-04 07:36:35 +00:00
Roger A. Light
7b002abd7e Sort tests. 2019-03-03 22:07:44 +00:00
Roger A. Light
7448f0cab8 Update merged tests. 2019-03-03 22:04:22 +00:00
Roger A. Light
6a1ac70ee6 Disallow writing to $ topics where appropriate. 2019-03-03 22:00:30 +00:00
Roger A. Light
7207041428 Fix delayed bridge local subs causing missing messages.
Closes #1174. Thanks to beville.

Bug: https://github.com/eclipse/mosquitto/issues/1174
2019-02-28 15:38:15 +00:00
Roger A. Light
36f10c7623 Update tests to not use TLS 1.0. 2019-02-28 12:08:26 +00:00
Roger A. Light
571c643b3d More C90 fixes for travis. 2019-02-27 23:17:05 +00:00
Roger A. Light
72941db546 Coverity fixes
1399064
1399065
1398655
1398656
1398654
1399067
1399066
1399063
1399060
1399059
1399068
1399062
1398657
1398653
1302848
1302847
1399070
2019-02-27 12:38:20 +00:00
Roger A. Light
91a2932e25 Add missing test. 2019-02-27 09:37:02 +00:00
Roger A. Light
b2c0c3d573 Handle DISCONNECT with will. 2019-02-27 09:27:34 +00:00
Roger A. Light
3b6b6d5fa8 Test improvements
And some related fixes.
2019-02-27 09:27:34 +00:00
Roger A. Light
c506c8335b Will delay tests and implementation. 2019-02-27 09:27:34 +00:00
Roger A. Light
5aabc171b0 Merge branch 'mqtt5' into develop 2019-02-26 18:51:31 +00:00
Roger A. Light
c3c8c99f5d Fix dropping oversize messages for QoS>0. 2019-02-21 08:31:54 +00:00
Roger A. Light
1d17ced449 Broker configurable max_packet_size
Plus tests.
2019-02-19 15:57:20 +00:00
Roger A. Light
b9b8e0ff2a Add client support for outgoing maximum packet size. 2019-02-19 15:14:34 +00:00
Roger A. Light
1877f8a326 Tests and implementation for maximum packet size.
This is for broker outgoing connack and publish packets only.
2019-02-18 19:50:51 +00:00
Roger A. Light
8db16591fa Test and fix for subscription identifiers not being updated.
Closes #1169. Thanks to Christoph Krey.
2019-02-18 12:24:19 +00:00
Roger A. Light
66c1e2ccf0 Add mosquitto_unsubscribe_multiple(), plus tests. 2019-02-17 20:59:16 +00:00
Roger A. Light
c823073be6 v5 unsubscribe test, single topic. 2019-02-17 19:47:53 +00:00
Roger A. Light
1479c57e34 v5 report reason code=no sub when unsubscribing. 2019-02-17 10:14:02 +00:00
Roger A. Light
1ec0cea34a Fix missing reason_code on v5 UNSUBACK.
Closes #1167. Thanks to Christoph Krey.
2019-02-17 09:30:06 +00:00
Roger A. Light
5e8199323b Fix clients being disconnected when ACLs are in use.
This only affects the case where a client connects using a username, and
the anonymous ACL list is defined but specific user ACLs are not
defined.

Closes #1162. Thanks to quonb.
2019-02-14 17:46:01 +00:00
Roger A. Light
f9f3fdbfe3 Fix pattern matching test. 2019-02-13 12:05:43 +00:00
Roger A. Light
d5dfd575b3 Fix broker TLS tests. 2019-02-13 11:51:52 +00:00
Roger A. Light
baa4642bd3 Generic ptest implementation. 2019-02-12 19:06:14 +00:00
Roger A. Light
b4a94f5900 Fix some ssl tests. 2019-02-12 18:51:19 +00:00
Roger A. Light
950ad8d16f Speed up pattern matching test. 2019-02-12 18:29:05 +00:00
Roger A. Light
016ce7dca5 Simplify ptest implementation. 2019-02-12 18:28:54 +00:00
Roger A. Light
e2f269bda8 Test duration printing on ptest. 2019-02-12 17:12:38 +00:00
Roger A. Light
084062c85e Merge branch 'fixes' into mqtt5 2019-02-12 17:05:42 +00:00
Roger A. Light
bb914b985c Fix mosquitto_topic_matches_sub() rc with sub=="topic/#abc".
This now returns MOSQ_ERR_INVAL as expected.
2019-02-12 11:34:45 +00:00
Roger A. Light
b6fb2c5824 Fix property write test after function changes. 2019-02-12 11:34:45 +00:00
Roger Light
c40957a7d8 Fix and tests for CVE-2018-12546. 2019-02-08 13:01:07 +00:00
Roger A. Light
d8505624d0 Fix and tests for security bug #541870. 2019-02-08 13:01:07 +00:00
Roger A. Light
36b5421c59 Fix and tests for security bug #543401. 2019-02-08 13:01:07 +00:00
Roger Light
5236295159 Handle mismatched handshakes properly.
For example, a QoS1 PUBLISH with QoS2 reply.
2019-02-08 13:01:07 +00:00
Roger A. Light
873ffce27a Send DISCONNECT on invalid topic alias, plus test. 2019-01-25 22:53:31 +00:00
Roger A. Light
219f47b07f Add test for multiple unsubscribe. 2019-01-25 21:38:33 +00:00
Roger A. Light
6b977fa198 Test and fixes for expiring retained messages. 2019-01-23 10:00:13 +00:00
Roger A. Light
ca3782b38d Test and fixes for will message expiry interval. 2019-01-22 17:51:57 +00:00
Roger A. Light
6a59e92db8 Set remaining message expiry interval when republishing. 2019-01-22 12:43:52 +00:00
Roger A. Light
0a9885aea1 Rename "resv" in connack to "flags" to better match v5 spec. 2019-01-22 12:12:18 +00:00
Roger A. Light
f9a17e2782 Add alias support to the broker. 2019-01-18 21:30:34 +00:00
Roger A. Light
1cc3e558ee Test for server keepalive. 2019-01-18 21:14:23 +00:00
Roger Light
8513af4da5 Tests and fixes for shortened DISCONNECT packets. 2019-01-17 18:51:23 +00:00
Roger Light
4b97a90ef9 Tests and fixes for truncated PUB* packets
For the cases where reason_code is 0, or properties are missing.
2019-01-17 17:24:31 +00:00
Roger A. Light
326292681a Add maximum-qos support to broker and client.
This comes in the form of:

* Per listener maximum_qos option, which can be in the range 0-2.
* Changes to mosquitto_publish*() to return MOSQ_ERR_QOS_NOT_SUPPORTED
  if attempting to publish with a higher QoS than supported.
* Bridges will downgrade messages to match the maximum QoS.

More tests on the broker side (specifically bridges) are required. This
needs bridge support for MQTT 5 first.
2019-01-09 18:03:01 +00:00
Roger Light
930a314caf Add reason_code to on_publish_v5 callback. 2019-01-09 17:06:43 +00:00
Roger Light
740a128769 Support PUBREC reason code >=0x80 as partial qos2 flow. 2019-01-09 15:00:12 +00:00
Roger Light
6119f83571 Add receive-maximum=1 test for client. 2019-01-09 13:56:15 +00:00
Roger A. Light
aeba5b5d0d Fix and tests for client side receive-maximum. 2019-01-09 12:21:15 +00:00
Roger Light
9aec82b0e1 Finalise test proplists in the packet gen funcs.
This makes it easier to add part of a proplist in the test itself, and have the gen func add some more.
2019-01-08 18:37:38 +00:00
Roger Light
67c1d4453e Receive maximum support for clients. 2019-01-08 14:24:41 +00:00
Roger A. Light
6eefb45b44 Broker tests for Receive Maximum. 2019-01-03 23:32:39 +00:00
Roger A. Light
00c4fd137a More UTF-8 tests. 2018-12-29 21:27:24 +00:00
Roger A. Light
c1baf21185 Add tests for subscription identifiers. 2018-12-23 21:39:15 +00:00
Roger A. Light
7c3666d593 Subscription identifier support. 2018-12-20 15:32:43 +00:00
Roger A. Light
ef724e6d33 Add test for first packet not being CONNECT. 2018-12-19 22:17:56 +00:00