Commit Graph

82 Commits

Author SHA1 Message Date
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
a29a7dadc6 Basic plugin support for single step extended auth. 2019-04-04 11:37:04 +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
73cd44ac7f Move handle__disconnect() to its own file. 2019-04-02 10:56:17 +01:00
Roger A. Light
75c2a39d2c Send topic alias maximum from the broker. 2019-03-27 17:38:35 +00:00
Roger A. Light
9faad1e078 Fix a variety of scan-build warnings. 2019-03-26 14:00:42 +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
110f4aada6 Don't overwrite disused client state. 2019-03-15 21:38:24 +00:00
Roger A. Light
2dd24449ad Fix "unused parameter" warnings. 2019-03-13 14:46:05 +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
ce31269e05 Update changelog, bump version, bump copyright year. 2019-02-28 16:56:15 +00:00
Roger A. Light
48d731ecb5 Use better random numbers for everything, where possible. 2019-02-27 14:15:31 +00:00
Roger A. Light
b2c0c3d573 Handle DISCONNECT with will. 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
b0c60fb6e1 Separate will reading code. 2019-02-27 09:27:34 +00:00
Roger A. Light
084062c85e Merge branch 'fixes' into mqtt5 2019-02-12 17:05:42 +00:00
Roger Light
c40957a7d8 Fix and tests for CVE-2018-12546. 2019-02-08 13:01:07 +00:00
Roger A. Light
ca3782b38d Test and fixes for will message expiry interval. 2019-01-22 17:51:57 +00:00
Roger Light
8513af4da5 Tests and fixes for shortened DISCONNECT packets. 2019-01-17 18:51:23 +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 A. Light
dab6452a1d Add test for duplicate CONNECT. 2018-12-19 22:17:39 +00:00
Roger A. Light
fcf4cd0b27 Merge branch 'master' into mqtt5 2018-12-19 14:11:11 +00:00
Roger A. Light
a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
2018-12-11 10:55:31 +00:00
Jelle van der Waa
1a6f8d3c28 src: ASN1_STRING_data is deprecated in OpenSSL 1.1
ASN1_STRING_get0_data replaces ASN1_STRING_data in OpenSSL 1.1 therefore
add an #ifdef for backwards compatibility.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-12-09 21:22:04 +00:00
Roger A. Light
6ef2c79e9a Add max_keepalive, for limiting keepalives of MQTT v5 clients. 2018-12-06 08:49:02 +00:00
Roger A. Light
1d3949bce0 Improve broker generated client ids for the non-Linux case.
Removes libuuid dependency.
2018-12-05 16:39:45 +00:00
Roger A. Light
7020fad86c Add server support for Assigned Client Identifier. 2018-11-29 17:19:26 +00:00
Roger A. Light
d5108956bf Process session-expiry-interval on CONNECT and DISCONNECT.
Add test to check for invalid values.
2018-11-27 12:23:21 +00:00
Roger A. Light
54db895cb3 Rename clean_session to clean_start for v5. 2018-11-27 10:02:10 +00:00
Roger Light
9560c5bac7 Add retain_available support. 2018-11-22 18:21:40 +00:00
Roger Light
6ca746695f Pass db to send__connack() to give it access to config. 2018-11-22 17:32:43 +00:00
Roger A. Light
34c752a0d0 Give better error message if a client sends a password without a username.
Closes #1015. Thanks to TabascoEye.
2018-11-07 17:29:39 +00:00
Roger A. Light
f77c1ca91b private struct mqtt5__property -> public mosquitto_property. 2018-11-01 23:50:54 +00:00
Roger A. Light
636e813d1c Load of constant renames ahead of making mqtt_protocol.h public. 2018-10-30 11:11:31 +00:00
Roger A. Light
9eebcf6704 Rename property__free_all->mosquitto_property_free_all
Make public function.
2018-10-30 10:16:42 +00:00
Roger A. Light
eefa7f7604 All existing commands read properties. 2018-10-25 12:11:00 +01:00
Roger A. Light
723d9c2782 Check whether properties are on the correct commands. 2018-10-25 11:23:04 +01:00
Roger A. Light
267178bd99 User properties are copied from PUBLISH to PUBLISH. 2018-10-25 10:24:19 +01:00
Roger A. Light
0baf358cf8 Add properties member to will struct. 2018-10-24 14:07:09 +01:00
Roger A. Light
8210c1fa7a All outgoing packets now write property length for MQTT 5.
At the moment this only writes a 0 property length, i.e. no properties.
It does mean that output packets are more correct than before.
2018-10-10 12:42:27 +01:00
Roger A. Light
246c9e6565 Read will properties, and free properties immediately for the moment. 2018-10-10 08:41:10 +01:00
Roger A. Light
f4b2838574 Property reading, and tests for byte properties. 2018-10-04 17:18:57 +01:00
Roger A. Light
400db91166 Handle UTF-8 validation in packet__read_string. 2018-10-03 15:04:24 +01:00
Roger A. Light
1488992ea8 Naive reading of MQTT 5 properties. No processing done. 2018-10-02 16:43:40 +01:00
Roger A. Light
561513fdd4 Very simple v5 CONNECT support - no properties. 2018-09-19 11:00:15 +01:00
Roger A. Light
99c6ec7f6e Protocol name will never be changed from MQTT. 2018-09-19 10:58:36 +01:00
Roger A. Light
0bacff11df Rename mqtt3_protocol.h -> mqtt_protocol.h. 2018-09-19 10:58:12 +01:00
Roger A. Light
11395f9852 Fix accessor functions for username and client id when used in plugin auth check. 2018-08-16 17:00:00 +01:00