Roger A. Light
c5699da5ce
Don't remove unused websockets contexts until lws is finished with them.
2019-03-17 07:40:01 +00:00
Roger A. Light
0ced003880
Always remove from by_id when adding to disused list.
2019-03-16 10:29:24 +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
110f4aada6
Don't overwrite disused client state.
2019-03-15 21:38:24 +00:00
Roger A. Light
9411d94842
Start of tests for persistence reading.
2019-03-14 20:57:25 +00:00
Roger A. Light
b6356735b4
Split persist read/write into separate files for easier testing.
2019-03-14 11:08:30 +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
173b209bd8
Remove unnecessary calls to time().
2019-03-13 16:07:37 +00:00
Roger A. Light
89f51aa54a
Search sub topics, don't iterate (where possible).
2019-03-13 16:07:37 +00:00
Roger A. Light
2dd24449ad
Fix "unused parameter" warnings.
2019-03-13 14:46:05 +00:00
Roger A. Light
0941638143
Fix signed/unsigned comparion warnings.
...
Closes #1196 .
2019-03-13 13:51:08 +00:00
Roger A. Light
b82370a997
Free clients with session expiry > 0 on exit.
2019-03-13 13:22:14 +00:00
Roger A. Light
08249313a4
Don't leak sockets.
2019-03-13 12:58:42 +00:00
Roger Light
1a234323a3
Add support for custom log timestamps.
...
Closes #1121 .
2019-03-13 11:24:14 +00:00
Roger Light
a57bba0aae
Don't use uhpa for topics, incompatible with uthash.
2019-03-08 23:11:21 +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
cd07c2b802
Windows build fixes.
2019-03-05 14:01:29 +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
6a1ac70ee6
Disallow writing to $ topics where appropriate.
2019-03-03 22:00:30 +00:00
Roger A. Light
1d4bf55165
Tidy previous commit and add to changelog.
2019-03-02 22:52:23 +00:00
Roger Light
bb6da93e93
Merge pull request #993 from bbabbi01/origin/develop
...
Implement DLT logging
2019-03-02 22:51:36 +00:00
Roger A. Light
ce31269e05
Update changelog, bump version, bump copyright year.
2019-02-28 16:56:15 +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
acf478eca2
Fix broken mosquitto_passwd on FreeBSD.
...
Closes #1032 . Thanks to jkoopman, Joseph Benden and Ari Suutari.
Bug: https://github.com/eclipse/mosquitto/issues/1032
2019-02-28 14:26:14 +00:00
Roger A. Light
a6f845bc67
Fix openssl deprecated function use.
2019-02-28 12:21:11 +00:00
Roger A. Light
4490d06a63
Coverity fixes.
...
1398654, 1398656 - lib missing unlock on fatal protocol error
1398655 - broker potential double free on startup after fatal persist
error.
2019-02-28 11:45:13 +00:00
Roger A. Light
d3d6f3a980
Fix compiling with openssl < 1.1.1.
2019-02-28 11:23:26 +00:00
Roger A. Light
463de0a2c1
Make error messages for missing config file clearer.
2019-02-28 11:13:47 +00:00
Roger A. Light
0632549ce9
Doc improvements for websockets_header_size.
2019-02-28 00:34:23 +00:00
Pierre Fersing
1aaf5f2348
Add websockets_headers_size option
...
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2019-02-28 00:25:19 +00:00
Roger A. Light
1924afe49e
Add explicit support for TLS v1.3 and drop TLS v1.0.
2019-02-27 22:50:01 +00:00
Roger A. Light
130ddf47f7
Add dhparamfile
option, to allow DH parameters to be loaded.
...
This is for Ephemeral DH support on listeners.
2019-02-27 22:26:40 +00:00
Roger A. Light
4564ff1232
Set umask for temp file.
2019-02-27 17:49:19 +00:00
Roger A. Light
87b3ca35f1
Use mkstemp with mosquitto_passwd on non-Windows.
2019-02-27 16:38:54 +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
dfbd33e0f4
Update documentation for bridge backup, plus tweaks
...
Sets default to use the backoff mechanism.
2019-02-27 13:52:19 +00:00
Abilio Marques
87eb535307
bridge: add decorrelated jitter backoff mechanism
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2019-02-27 13:25:20 +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
Steven Lawrance
208c3d3e85
Allow binding a listener to a specific network interface
...
Signed-off-by: Steven Lawrance <stl@koffein.net>
2019-02-27 09:38:39 +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
b0c60fb6e1
Separate will reading code.
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
e862a047a8
Rework TLS engine support.
2019-02-26 17:11:29 +00:00
Nicolás Pernas Maradei
20894fcbce
Add engine private key password support
...
Some OpenSSL engines (selectable via tls_engine option) may require a
password to make use of private keys created with them in the first place.
The TPM engine for example, will require a password to access the underlying
TPM's Storage Root Key (SRK), which is the root key of a hierarchy of keys
associated with a TPM; it is generated within a TPM and is a non-migratable
key. Each owned TPM contains a SRK, generated by the TPM at the request
of the Owner. [1]
By default, the engine will prompt the user to introduce the SRK password
before any private keys created with the engine can be used. This could
be inconvenient when running on an unattended system.
Here's where the new tls_engine_kpass_sha option comes in handy. The user
can specify a SHA1 hash of its engine private key password via command
line or config file and it will be passed on to the engine directly.
This commit adds support for both clients (libmosquitto) and broker.
[1] https://goo.gl/qQoXBY
Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
2019-02-26 15:50:37 +00:00
Nicolás Pernas Maradei
d5f039ec7c
Add TLS engine and keyform support to mosquitto
...
Add same OpenSSL engine support to mosquitto (server side) previously added to
client side only.
Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
2019-02-26 15:50:37 +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
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
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
8350956a08
Make include_dir sort usefully case sensitive.
2019-02-13 22:55:15 +00:00
Roger A. Light
321e566af6
Fix unref'd messages being saved to the persistence file.
...
This was leaving dangling messages that were never freed.
Closes #389 . Thanks to pjchx.
2019-02-13 12:08:05 +00:00
Roger A. Light
084062c85e
Merge branch 'fixes' into mqtt5
2019-02-12 17:05:42 +00:00
Roger A. Light
9999faf9da
Add rewritten build test script and remove some build warnings.
2019-02-12 13:24:54 +00:00
Roger A. Light
04e89450c0
Don't require C99 compiler.
2019-02-09 13:52:09 +00:00
Roger A. Light
715da28602
Fix include_dir not sorting config files before loading.
...
Thanks to momoskitto.
2019-02-08 23:52:11 +00:00
Roger A. Light
2e1c2c430f
per_listener_settings true
must come before other security settings.
...
Produce error if this is not the case. Closes #1164 , thanks to
momoskitto.
2019-02-08 23:14:43 +00:00
Roger A. Light
9378016b19
Fix build failure when using WITH_ADNS=yes
2019-02-08 21:34:08 +00:00
Roger A. Light
05458eb35d
Fix some unused variable warnings.
2019-02-08 13:01:07 +00:00
Roger A. Light
1c075988ca
Log message for disconnecting a client with invalid UTF-8 topic.
...
Closes #1144 . Thanks to Kris Mattheus.
2019-02-08 13:01:07 +00:00
Roger A. Light
17b52bd5d1
Windows: Fix possible crash when client disconnects.
...
Closes #1137 . Thanks to Kris Mattheus.
2019-02-08 13:01:07 +00:00
Roger A. Light
d6a690aa8d
Fix Will not being sent for Websockets clients.
...
Closes #1143 . Thanks to salcedo.
2019-02-08 13:01:07 +00:00
Roger A. Light
29a1936c77
Fix spaces not being allowed in the bridge remote_username option.
...
Closes #1131 . Thanks to beville.
2019-02-08 13:01:07 +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
Steven Lawrance
84d5028c2e
Include sys/socket.h for AF_INET definition
...
Without this, mosquitto doesn't build on FreeBSD with websockets enabled
Signed-off-by: Steven Lawrance <stl@koffein.net>
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
Vinod Kumar
78259850ed
ignore inline comments while parsing optional config params
...
Signed-off-by: Vinod Kumar <kumar003vinod@gmail.com>
2019-02-08 13:01:07 +00:00
Roger A. Light
be9c1071b0
Fix compilation when openssl deprecated APIs are not available.
...
Closes #1094 . Thanks to Rosen Penev.
2019-02-08 13:01:07 +00:00
Roger A. Light
70c4097b6f
Fix comparison of boolean values in CMake build.
...
Closes #1101 . Thanks to Mojca Miklavec and Andrew L. Moore.
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
5e7f43c9ea
Temporarily disable all extended AUTH.
2019-01-25 22:02:12 +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
85615c1bae
AUTH packet can be truncated.
2019-01-18 21:38:29 +00:00
Roger A. Light
f9a17e2782
Add alias support to the broker.
2019-01-18 21:30:34 +00:00
Roger A. Light
37727b402b
Fix maximum qos on listener conf.
2019-01-17 21:04:46 +00:00
Roger Light
8513af4da5
Tests and fixes for shortened DISCONNECT packets.
2019-01-17 18:51:23 +00:00
Roger A. Light
5f8d86b4ee
Fix sub-denied test.
2019-01-10 22:10:32 +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
740a128769
Support PUBREC reason code >=0x80 as partial qos2 flow.
2019-01-09 15:00:12 +00:00
Roger Light
84660e1cbe
Send maximum limits for QoS>0.
...
This needs more work on the broker front to simplify the design.
2019-01-08 18:38:47 +00:00
Roger A. Light
16e83bfe5d
Process receive maximum (as max_inflight_messages).
2018-12-30 21:53:50 +00:00
Roger A. Light
7c3666d593
Subscription identifier support.
2018-12-20 15:32:43 +00:00
Roger A. Light
dab6452a1d
Add test for duplicate CONNECT.
2018-12-19 22:17:39 +00:00
Roger A. Light
ec1178806c
Fix bridge tests.
2018-12-19 14:38:49 +00:00
Roger A. Light
fcf4cd0b27
Merge branch 'master' into mqtt5
2018-12-19 14:11:11 +00:00
Roger A. Light
31e6dbbe74
Tests and fixes for subscription options.
2018-12-19 12:54:04 +00:00
Roger A. Light
72fdb590b1
Fix no local and retain as published for local bridges.
2018-12-19 10:45:40 +00:00
Roger A. Light
2919510384
No local support.
2018-12-14 13:54:26 +00:00