Commit Graph

135 Commits

Author SHA1 Message Date
Roger A. Light
1220ba4bfe Rejig OCSP code. 2019-03-26 22:13:42 +00:00
Roger A. Light
ea046c2405 Merge branch 'master' of git://github.com/LarsVoelker/mosquitto into LarsVoelker-master 2019-03-26 18:36:13 +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 Light
1a234323a3 Add support for custom log timestamps.
Closes #1121.
2019-03-13 11:24:14 +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
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
1773938d98 bridge: modify documentation for restart_timeout
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2019-02-27 13:25:28 +00:00
Roger A. Light
e334aad853 Rewrite bind_interface docs, update changelog. 2019-02-27 10:07:14 +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
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
1d17ced449 Broker configurable max_packet_size
Plus tests.
2019-02-19 15:57:20 +00:00
Roger A. Light
8350956a08 Make include_dir sort usefully case sensitive. 2019-02-13 22:55:15 +00:00
Roger A. Light
1a6c3f0c86 Improve documentation around the include_dir option.
Closes #1154. Thanks to Guzoft.
2019-02-13 10:08:44 +00:00
Roger A. Light
084062c85e Merge branch 'fixes' into mqtt5 2019-02-12 17:05:42 +00:00
Roger A. Light
f952ae3a67 Fixed durable clients being unable to receive messages when offline.
This occurred when per_listener_settings was set to true.

Closes #1081. Thanks to dwin-wangjt.
2019-02-08 13:01:07 +00:00
Roger A. Light
9df6da16ec Improve documentation of use_identity_as_username.
Closes #1134. Thanks to Adrian P.
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
760b2f125c Make table more consistent with preceding documentation. 2019-02-08 13:01:07 +00:00
Roger A. Light
495e9647c2 Improve bridge remapping documentation. 2019-02-08 13:01:07 +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
fcf4cd0b27 Merge branch 'master' into mqtt5 2018-12-19 14:11:11 +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
48c2217015 auto_id_prefix now defaults to 'auto-'. 2018-12-05 17:17:35 +00:00
Roger A. Light
d29dac087d Add socket_domain option. 2018-12-04 11:48:29 +00:00
Roger Light
9560c5bac7 Add retain_available support. 2018-11-22 18:21:40 +00:00
Roger A. Light
d9fc9cd0ae Add allow_zero_length_clientid, auto_id_prefix documentation.
Closes #600.
2018-09-25 14:38:54 +01:00
Roger A. Light
008d424a33 Minor documentation fix. Closes #520. 2018-09-25 14:25:54 +01:00
Roger A. Light
b07e0c08bf Fix IPv6 addresses not being able to be used as bridge addresses.
Closes #886.

Signed-off-by: Roger A. Light <roger@atchoo.org>
2018-08-02 13:01:02 +01:00
Roger A. Light
8676cc0359 Replace mentions of deprecated 'c_rehash' with 'openssl rehash'. 2018-04-07 11:26:43 +01:00
Roger A. Light
26bc3206cd Per listener allow_zero_length_clientid. 2018-03-18 21:23:50 +00:00
Roger A. Light
7271893966 Per listener auto_id_prefix. 2018-03-18 21:08:39 +00:00
Roger A. Light
b2e1592376 Per listener allow_anonymous. 2018-03-15 14:29:07 +00:00
Roger A. Light
bc13eab9d6 Add per_listener_settings, which isn't used yet. 2018-03-13 17:52:03 +00:00
Roger A. Light
ec63d7bfc7 Add set_tcp_nodelay option to disable Nagle's algorithm.
Bug: https://github.com/eclipse/mosquitto/issues/433
2018-02-14 23:51:16 +00:00
Roger A. Light
81cb7ab547 Merge branch 'fixes' into develop 2018-02-13 14:16:47 +00:00
Pierre Fersing
60cb8bedb0 Fix <option> closing too early in man page
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2017-12-29 13:57:10 +01:00
Pierre Fersing
94ae095895 Update man page for "remote_clientid"
Fix occurent of old "clientid" option which was renamed in
"remote_clientid".

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2017-12-29 13:54:08 +01:00
Pierre Fersing
71a748e1c4 Remove duplicated bridge_attempt_unsubscribe option
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2017-12-29 13:50:09 +01:00
Roger A. Light
e74203de2c Merge branch 'master' into develop 2017-07-16 22:52:01 +01:00
Dr. Lars Voelker
74adb43cc1 Adding OCSP Stapling support to mosquitto
Adding OCSP Stapling support to mosquitto, so that the TLS client side
requests the certificate status and checks it.
This code uses the OpenSSL-based OCSP implementation and is somewhat
based on the libcurl code for OCSP stapling.

Signed-off-by: Dr. Lars Voelker <lars.voelker@bmw.de>
2017-07-07 13:05:17 +02:00
Roger A. Light
c3823c0a81 [462] Add auth_plugin_deny_special_chars option.
Auth plugins can be configured to disable the check for +# in
usernames/client ids with the auth_plugin_deny_special_chars option.

Thanks to wiebeytec.

Bug: https://github.com/eclipse/mosquitto/issues/462
2017-06-27 14:59:37 +01:00
Roger A. Light
fe8fef27ee Make bug urls clickable. 2017-05-31 23:31:55 +01:00
Roger A. Light
6f9842ae02 Fix man page links. 2017-05-31 23:24:12 +01:00
Roger A. Light
a88acdd122 Fix issues url. 2017-04-21 22:26:58 +01:00
Ben Hardill
740b710a0b Add support for local only bridge notifications (#328)
This update adds an option to only publishes bridge
notification messages to the local side of the bridge.

It adds a config file option called notifications_local_only
that accepts a boolean value, defaults to false to be
consistent with existing behaviour.

Fixes #233

Signed-off-by: Ben Hardill <hardillb@uk.ibm.com>
2016-12-04 21:47:38 +00:00
Karl Palsson
c6aac741c2 broker: support byte based queueing
Limiting queued message depth purely based on message count is hard to
control for memory constrained devices.  The size of messages can vary
wildly, from a few bytes, to a few kilobytes.  Support a new
max_queued_bytes option, and drop packets when the first limit is
reached.  Option defaults to 0 (disabled) by default.
Support also a max_inflight_bytes variable, with similar behaviour.

Fixes (partof) https://github.com/eclipse/mosquitto/issues/100

This pulls up some helper routines for calculating whether to allow
inflight or queuing, resolving some inconsistences in connection
resumption.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2016-09-09 17:27:39 +00:00
Karl Palsson
642e141c23 conf: max_queued_messages: clarify per client limit
Signed-off-by: Karl Palsson <karlp@etactica.com>
2016-08-17 11:14:31 +00:00
Roger A. Light
1c3988a397 Merge branch 'master' into develop 2016-06-21 23:33:58 +01:00
Roger A. Light
7761218d3c [170] Fix WS listeners not being able to bind to an IP.
Closes #170. Thanks to minghuadev.

Bug: https://github.com/eclipse/mosquitto/issues/170
2016-05-26 09:21:15 +01:00
Roger A. Light
fca9ac84f7 Merge fixes into develop. 2016-01-06 21:10:34 +00:00
Roger A. Light
559e2438cb Revert "Add support for sending direct messages to clients."
This reverts commit 8f54cde293.
2015-11-18 12:27:23 +00:00
Roger A. Light
8f54cde293 Add support for sending direct messages to clients.
This works through $CLIENT/direct/<client id>, using the
allow_direct_messages option.
2015-11-13 21:01:56 +00:00
Roger A. Light
4b9b792d16 Update all mqtt 3.1 references to 3.1.1 where appropriate. 2015-10-24 21:50:19 +01:00
Roger A. Light
422a156e98 Revert man page to html rather than php. 2015-10-15 16:13:44 +01:00
Roger A. Light
4afe1a1502 Swap plugin+built in order. 2015-10-02 21:44:39 +01:00
Roger A. Light
e773ea1bee [464543] Run default checks after plugins. 2015-06-29 23:31:39 +01:00
Roger A. Light
5c642c9cfd [464543] Add defer support for plugins.
Partial fix for 464543.
2015-06-29 22:33:01 +01:00
Roger A. Light
7657aac584 [469467] Fixes and documentation to use_subject_as_username patch.
This is for certificate based client authentication.

Thanks to Fabian Ruff.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=469467
2015-06-12 22:52:15 +01:00
Roger A. Light
cdbe62c2bb Outgoing messages with QoS>0 are no longer retried after a timeout.
This change in behaviour can be justified by considering when the
timeout may have occurred.

* If a connection is unreliable and has dropped, but without one end
  noticing, the messages will be retried on reconnection. Sending
  additional PUBLISH or PUBREL would not have changed anything.

* If a client is overloaded/unable to respond/has a slow connection then
  sending additional PUBLISH or PUBREL would not help the client catch
  up. Once the backlog has cleared the client will respond. If it is not
  able to catch up, sending additional duplicates would not help either.
2015-05-24 11:59:53 +01:00
Roger A. Light
db86809ee9 Add websockets logging options. 2015-02-13 22:57:49 +00:00
Roger A. Light
1b4903b41e [431780] ACL files can contain a space in username/topic.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=431780
2015-01-27 23:33:36 +00:00
Roger A. Light
87d8e1f705 Bridge support for MQTT v3.1.1. 2015-01-27 17:12:36 +00:00
Roger A. Light
0adb2ed217 [425835] Support for "hour client expiration times.
This allows shorter values for the persistent_client_expiration option.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=425835
2015-01-15 21:57:03 +00:00
Roger A. Light
525f989c6c Update html man page generation for eclipse pages. 2015-01-09 23:35:53 +00:00
Roger A. Light
5ee0ab8e34 Fix bug links. 2015-01-09 21:34:01 +00:00
Roger A. Light
175794826b [456899] Broker: Add bridge_attempt_unsubscribe option.
The bridge_attempt_unsubscribe option has been added, to allow the sending
of UNSUBSCRIBE requests to be disabled for topics with "out" direction.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=456899
2015-01-07 21:50:10 +00:00
Roger A. Light
fc1e514ad4 Add log_facility for non-Windows OSs. 2014-11-02 21:49:33 +00:00
Roger A. Light
c4e7233159 Add http_dir option (not yet used). 2014-09-08 18:21:53 +01:00
Roger A. Light
1b68bfbf76 Fix typo.
Thanks to Leon George.
2014-09-06 21:17:01 +01:00
Roger A. Light
b937a043e7 Rename remote bridge identifiers to remote_. 2014-08-16 21:31:12 +01:00
Roger A. Light
a03465da3f Man page fix. 2014-08-15 16:38:50 +01:00
Roger A. Light
fe5dba5887 Add use_username_as_clientid. 2014-07-02 00:09:50 +01:00
Roger A. Light
11631d8d92 Add local_clientid for bridges. 2014-06-10 23:30:15 +01:00
Roger A. Light
c8a0786dea TLS websockets support. 2014-06-03 02:10:55 +01:00
Roger A. Light
063928bbfe Merge websockets -> 1.4. 2014-05-26 17:22:52 +01:00
Roger A. Light
7316742cf4 Config support for websockets. 2014-05-18 22:40:20 +01:00
Roger A. Light
3767ef8684 Man page documentation for local_username and local_password. 2014-05-18 22:06:10 +01:00
Roger A. Light
ae6baad2fa Default TLS mode now accepts TLS v1.2, v1.1 and v1.0. 2014-05-24 23:18:54 +01:00
Roger Light
0364bd1be7 Initial contribution. 2014-05-07 23:27:00 +01:00