Commit Graph

167 Commits (331e8029131e2108eee5984788036ec818158525)

Author SHA1 Message Date
Roger A. Light 3731535298 Add SPDX license identifiers. 5 years ago
Roger A. Light 04c110183c Bridge support for MQTT v5 maximum-qos. 5 years ago
Roger A. Light 584cf51ba7 Update to EPL-2.0 5 years ago
Roger A. Light adfa9f1e21 Always zero terminate payloads (removes uhpa support) 5 years ago
Roger A. Light 26e8cc3fb9 Fix connack props not being freed on error. 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 e6b8fc5bbd Fix oversize packet check in CONNECT. 5 years ago
Roger A. Light 291b711bd4 Fix incorrect disconnect messages. 5 years ago
Roger A. Light 4f61f6c161 Fix conversion errors. 5 years ago
Roger A. Light 7cce159ff4 Don't free will_struct after the client context owns it. 5 years ago
Roger A. Light c90e49af1b Merge remote-tracking branch 'origin/fixes' into develop 5 years ago
Roger A. Light a57e41beff Fix use after free (develop branch only). 5 years ago
Roger A. Light 97bd527df0 Breaking: allow_anonymous defaults to false. 5 years ago
Roger A. Light bb5456729d Move keepalive check code to separate file.
This is in preparation for changing to a tree based implementation.
5 years ago
Roger A. Light b91e78318d Don't always iterate over entire inflight messages list
If we have e.g. max_inflight_messages set to 1000, and currently have 999 messages inflight, then when we send a new message to a client we have to iterate over the whole list to get to the newest message. This change means that we start of the back of the list to find the newest items, which reduces overhead.
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 84e4ba2c1e Send DISCONNECT with malformed-packet reason code on bad PUBLISHes. 5 years ago
Roger A. Light 73cc271d37 Allow auth plugin to see all logins, unless accepted by password file. 5 years ago
Roger A. Light d3247a830a Fix memory leak when connecting clients are rejected. 5 years ago
Roger A. Light eeaafed485 Fix memory leak when connecting clients rejected. 5 years ago
Roger A. Light c84d175b3d Fixes for the poor souls stuck on <c99.
Closes #1622.
6 years ago
Roger A. Light b0a065f790 Update changelog. Release page. Bump copyright. 6 years ago
Roger A. Light 05171b266d Fix TLS Websockets clients not receiving messages.
This can occurs after one client takes over a previous connection.

Closes #1489. Thanks to Bas Verhoeven.
6 years ago
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.
6 years ago
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.
6 years ago
Roger A. Light f974b91084 Consistent ref counting inc and dec functions. 6 years ago
Roger A. Light b4dfeb3767 Fix MQTT v5 clients not being able to specify a password without a username.
Thanks to Erik Moqvist.

Closes #1274.
6 years ago
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.
6 years ago
Roger A. Light cd3877e628 Fix detection of incoming v3.1/v3.1.1 bridges.
Closes #1263. Thanks to vrst37.
6 years ago
Roger A. Light eebdbc86c4 Fix access after free when v5 client with Will message disconnects.
The Will message has as its first property one of content-type,
correlation-data, payload-format-indicator, or response-topic.

Closes #1244. Thanks to Christoph Krey.
7 years ago
Roger A. Light 6438ce861e Minor build variant fixes. 7 years ago
Roger A. Light 8531cb1d79 Separate broker message queues into in/out.
This allows and includes better flow control handling for QoS>0.
7 years ago
Roger A. Light baf1909ffb Improve some messages when client disconnects. 7 years ago
Roger A. Light 2e7dcee342 Multistep auth, plus reauth, plus tests. 7 years ago
Roger A. Light c1776a0b39 Add reauth parameter for extended auth. 7 years ago
Roger A. Light 0f6e51d582 Code and tests for returning single stage auth data back to client. 7 years ago
Roger A. Light a29a7dadc6 Basic plugin support for single step extended auth. 7 years ago
Roger A. Light fb8a2baaad Refactor client msgs to use utlist to reduce code complexity. 7 years ago
Roger A. Light fe854d3a64 Refactor handle__connect() ahead of extended auth changes. 7 years ago
Roger A. Light 73cd44ac7f Move handle__disconnect() to its own file. 7 years ago
Roger A. Light 75c2a39d2c Send topic alias maximum from the broker. 7 years ago
Roger A. Light 9faad1e078 Fix a variety of scan-build warnings. 7 years ago
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
7 years ago
Roger A. Light 110f4aada6 Don't overwrite disused client state. 7 years ago
Roger A. Light 2dd24449ad Fix "unused parameter" warnings. 7 years ago
Roger A. Light 2ea97a6cd9 Check for authentication method on CONNECT, and reject. 7 years ago
Roger A. Light ac91144495 Session expiry interval support - not working for file persistence. 7 years ago
Roger A. Light ce31269e05 Update changelog, bump version, bump copyright year. 7 years ago
Roger A. Light 48d731ecb5 Use better random numbers for everything, where possible. 7 years ago
Roger A. Light b2c0c3d573 Handle DISCONNECT with will. 7 years ago
Roger A. Light c506c8335b Will delay tests and implementation. 7 years ago
Roger A. Light b0c60fb6e1 Separate will reading code. 7 years ago
Roger A. Light 084062c85e Merge branch 'fixes' into mqtt5 7 years ago
Roger Light c40957a7d8 Fix and tests for CVE-2018-12546. 7 years ago
Roger A. Light ca3782b38d Test and fixes for will message expiry interval. 7 years ago
Roger Light 8513af4da5 Tests and fixes for shortened DISCONNECT packets. 7 years ago
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.
7 years ago
Roger A. Light dab6452a1d Add test for duplicate CONNECT. 7 years ago
Roger A. Light fcf4cd0b27 Merge branch 'master' into mqtt5 7 years ago
Roger A. Light a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
7 years ago
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>
7 years ago
Roger A. Light 6ef2c79e9a Add max_keepalive, for limiting keepalives of MQTT v5 clients. 7 years ago
Roger A. Light 1d3949bce0 Improve broker generated client ids for the non-Linux case.
Removes libuuid dependency.
7 years ago
Roger A. Light 7020fad86c Add server support for Assigned Client Identifier. 7 years ago
Roger A. Light d5108956bf Process session-expiry-interval on CONNECT and DISCONNECT.
Add test to check for invalid values.
7 years ago
Roger A. Light 54db895cb3 Rename clean_session to clean_start for v5. 7 years ago
Roger Light 9560c5bac7 Add retain_available support. 7 years ago
Roger Light 6ca746695f Pass db to send__connack() to give it access to config. 7 years ago
Roger A. Light 34c752a0d0 Give better error message if a client sends a password without a username.
Closes #1015. Thanks to TabascoEye.
7 years ago
Roger A. Light f77c1ca91b private struct mqtt5__property -> public mosquitto_property. 7 years ago
Roger A. Light 636e813d1c Load of constant renames ahead of making mqtt_protocol.h public. 7 years ago
Roger A. Light 9eebcf6704 Rename property__free_all->mosquitto_property_free_all
Make public function.
7 years ago
Roger A. Light eefa7f7604 All existing commands read properties. 7 years ago
Roger A. Light 723d9c2782 Check whether properties are on the correct commands. 7 years ago
Roger A. Light 267178bd99 User properties are copied from PUBLISH to PUBLISH. 7 years ago
Roger A. Light 0baf358cf8 Add properties member to will struct. 7 years ago
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.
7 years ago
Roger A. Light 246c9e6565 Read will properties, and free properties immediately for the moment. 7 years ago
Roger A. Light f4b2838574 Property reading, and tests for byte properties. 7 years ago
Roger A. Light 400db91166 Handle UTF-8 validation in packet__read_string. 7 years ago
Roger A. Light 1488992ea8 Naive reading of MQTT 5 properties. No processing done. 7 years ago
Roger A. Light 561513fdd4 Very simple v5 CONNECT support - no properties. 7 years ago
Roger A. Light 99c6ec7f6e Protocol name will never be changed from MQTT. 7 years ago
Roger A. Light 0bacff11df Rename mqtt3_protocol.h -> mqtt_protocol.h. 7 years ago
Roger A. Light 11395f9852 Fix accessor functions for username and client id when used in plugin auth check. 7 years ago
Roger A. Light 88765a5e80 Consistent use of config.h across the project. 7 years ago
Roger A. Light a199cac69e Don't confuse expiring and duplicate clients. 7 years ago
Tobias Assarsson cc96485330 Add missing parameters to internal mosquitto_acl_check
Signed-off-by: Tobias Assarsson <tobias.assarsson@gmail.com>
7 years ago
Roger A. Light 0d25cb58b4 Fix `use_identity_as_username true` not working.
Closes #833.

Thanks to David Crook and Brice Waegeneire.

Bug: https://github.com/eclipse/mosquitto/issues/833

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
bricewge 2a3305a4a2 fix #833
Signed-off-by: Brice Waegeneire <brice.wge@gmail.com>
7 years ago
Dave Miller 81a82f6fe2 Fix for issue #874
With special acknowledgement to sxsing (his github login) for his
help in development and testing of this fix.

NOTE: Pull-request is against master as the fixes branch has not
been updated with the v1.5 file src/handle_connect.c

Signed-off-by: Dave Miller <dmiller@tibco.com>
7 years ago
Roger A. Light 51ec5601c2 Fix memory leak that could be caused by a malicious CONNECT packet.
Closes #533493 (on Eclipse bugtracker)

Thanks to Daniel Romero.
8 years ago
Roger A. Light 23230b7b18 Add per-listener acl handling. 8 years ago
Roger A. Light 7615ae24ce Handle CONNECT protocol errors.
Don't allow username when no username flag set.
Don't allow password when no password flag set.

Closes #730. Closes #731.

Thanks to Umberto Boscolo.
8 years ago
Roger A. Light 729a09310a Add UTF-8 tests, plus some validation fixes.
Closes #693.
8 years ago
Roger A. Light 5ff8127f44 Fix will sending for duplicate clients.
When a client with an in-use client-id connects, if the old client has a
will, send the will message. Closes #26.

Thanks to Pierre F.
8 years ago
Roger A. Light 24d68b5af8 Remove support for openssl 1.0.0 and 1.0.1.
These are no longer supported by openssl.
8 years ago
Roger A. Light f4d238be18 Bump copyright years. 8 years ago
Roger A. Light 26bc3206cd Per listener allow_zero_length_clientid. 8 years ago
Roger A. Light 7271893966 Per listener auto_id_prefix. 8 years ago