Commit Graph

745 Commits

Author SHA1 Message Date
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