Commit Graph

298 Commits (50dc0399050315eca16aae1b4284e08dccb45eb0)

Author SHA1 Message Date
Roger A. Light b726e2f1ec mosquitto_sub %j and %J timestamps are now in a ISO 8601 compatible format. 5 years ago
Roger A. Light 3e9eae401e Missing / in bridge remapping doc. 6 years ago
Karl Palsson 07d73c7e3a bridge: support bridge local clean session
This adds the ability to separating bridge clean session settings between
the local and remote endpoints.  Some broker implmentations refuse to allow
non-clean sessions, as they don't support storing messages to be sent to
the connecting broker.  However, this doesn't mean that the local
broker can't be queueing messages to send _out_ to the remote broker.

This PR adds a new bridge connection setting, local_cleansession, that
allows controlling this split. Naming is chosen to be local_ in keeping
with the other local_ settings for bridges.

A test for the six cases of queued/not queued messages in both
directions is added, but v5 testing is currently disabled.  The changes
to support the split are ~independent of protocol version.

Signed-off-by: Karl Palsson <karlp@etactica.com>
6 years ago
Roger A. Light 0da723c1ec Add `--random-filter` to mosquitto_sub. 6 years ago
Roger A. Light 3671a6dfdb Add `-x` argument to all clients.
This allows the session-expiry-interval property to be easily set for
MQTT v5 clients.
6 years ago
Roger A. Light d60e86d2a3 Add TCP_NODELAY support to lib and clients.
Closes #1526. Thanks to Felix Moessbauer.
6 years ago
Roger A. Light c0443637e8 Merge branch 'master'
Conflicts:
	ChangeLog.txt
	config.mk
	src/context.c
	src/loop.c
	src/subs.c
	test/broker/01-connect-bad-packet.py
	test/broker/02-subpub-qos1-bad-pubcomp.py
	test/broker/02-subpub-qos1-bad-pubrec.py
	test/broker/02-subpub-qos2-bad-puback-1.py
	test/broker/02-subpub-qos2-bad-puback-2.py
	test/broker/02-subpub-qos2-bad-pubcomp.py
	test/broker/02-subpub-qos2.py
	test/broker/07-will-null-topic.py
6 years ago
Roger A. Light 91961d93c4 Merge branch 'master' of git://github.com/basavesh/mosquitto into basavesh-master 6 years ago
Roger A. Light 3d92dcbbd9 Make documentation for `mosquitto_pub -l` match reality
Blank lines are sent as empty messages.

Closes #1474. Thanks to majekw.
6 years ago
Roger A. Light 2af260ba58 Add `bridge_outgoing_retain` option
This allows outgoing messages from a bridge to have the retain bit
completely disabled, which is useful when bridging to e.g. Amazon or
Google.
6 years ago
Roger A. Light d49988fa6f Rejig unix socket support. 6 years ago
Roger Light 1c6666b63a Add user-property output support to sub/rr. 6 years ago
Roger A. Light 59c0bfe6e1 Add support for v5 property printing to mosquitto_sub/rr in non-JSON mode. 6 years ago
Roger A. Light 9e4226622f Add `--pretty` option to mosquitto_sub/rr
If active, this produces formatted JSON output rather than the normal
minimised output.
6 years ago
Roger A. Light ad5c2e11d9 Use cJSON for producing JSON output in clients.
Closes #1222. Thanks to Ben Barbour.
6 years ago
Roger A. Light 27e81e9e13 Point libmosquitto documentation at the API pages. 6 years ago
Roger A. Light b660283e64 Basic MQTT v5 support for bridges.
This gives equivalent behaviour as for v3.1.1/v3.1 bridges, there is no extra functionality yet.
6 years ago
Roger A. Light 499e2f2e98 Add support for unix sockets to broker, lib, and clients. 6 years ago
Roger A. Light 54ed3c0fc9 Merge branch 'master' into develop 6 years ago
Roger A. Light da5ff1746c Don't use `/` in auto client ids.
Also update client documentation about automatic client ids.
6 years ago
Roger A. Light 01530a3f07 Improve message_size_limit and various max_* option docs.
Closes #448.
6 years ago
Roger A. Light c1e488cb88 Add timeout return code (27) for sub/rr using -W.
Closes #275.
6 years ago
Roger A. Light 14e1ae09dc max_packet_size applies to 3.1.1 and 3.1 clients as well 6 years ago
Roger A. Light 6f4e472260 Improve details on global/per listener options in the mosquitto.conf man page.
Closes #274.
6 years ago
Dan Langille c169ad6abb
$HOME/.config/mosquitto_sub or pub?
Should $HOME/.config/mosquitto_sub be $HOME/.config/mosquitto_pub? It seems to be that way based on my testing.

I think this is a copy/paste error.
6 years ago
Roger A. Light 570c3674fb Drop privs to nobody if mosquitto user does not exist. 6 years ago
Jonas Helgemo 1001569fa3
docs: Fix typo on man-page for mosquitto.conf
- man-page has a typo in the 'bridge_capath' section under SSL/TLS support

Signed-off-by: Jonas Helgemo <jhel@pm.me>
6 years ago
Roger A. Light 9dc319c183 Remove obsolete `store_clean_interval` from documentation. 6 years ago
Roger A. Light bd34d8c9cd Remove old man page references.
Thanks to Karl Palsson.

Closes #1266.
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 46d5aa9682 Improve documentation around the upgrading of persistence files.
Thanks to jsaak.

Closes #1276.
6 years ago
Roger A. Light 439575475c Use CMAKE_INSTALL_* variables when installing in CMake.
Closes #1049. Thanks to Greg Troxel.
7 years ago
Roger A. Light b649c972eb Document notifications better. Closes #1188. 7 years ago
Roger A. Light 2c0d6e3304 Fix rr description. 7 years ago
Roger A. Light 27b8bcf320 Document `memory_limit` option. 7 years ago
Roger A. Light 4995436b5a Add --repeat and --repeat-delay to mosquitto_pub. 7 years ago
Roger A. Light eba9186c85 Update rr docs. 7 years ago
Roger A. Light dec769ce33 Client and doc ALPN additions
Add ALPN support for all clients, update documentation, and add to ChangeLog.
7 years ago
Roger Light 77aaec686e
Merge pull request #1224 from omenlabs/ALPN
Bridge TLS Application-Layer Protocol Negotiation
7 years ago
John Hickey c011be62a4 Bridge TLS Application-Layer Protocol Negotiation
In order to connect to brokers that support both websockets and
mqtt on the same port (such as Amazon IoT), we need to set an
application for the SSL context.  This change allows the specification
of an application by using the `bridge_alpn` configuration token.

Signed-off-by: John Hickey <jjh-github@daedalian.us>
7 years ago
Roger A. Light a29a7dadc6 Basic plugin support for single step extended auth. 7 years ago
Roger A. Light 925debb8a5 Add mosquitto_rr, the "request-response" client. 7 years ago
Roger A. Light ec3fd361be https links where possible. 7 years ago
Roger A. Light 75c2a39d2c Send topic alias maximum from the broker. 7 years ago
Roger A. Light 1220ba4bfe Rejig OCSP code. 7 years ago
Roger A. Light ea046c2405 Merge branch 'master' of git://github.com/LarsVoelker/mosquitto into LarsVoelker-master 7 years ago
YoongHM 64469ae54e Typo
rmeote -> remote
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 Light 1a234323a3 Add support for custom log timestamps.
Closes #1121.
7 years ago
Roger A. Light 1ce1bce941 Add --remove-retained to mosquitto_sub
This can be used to clear retained messages on a broker.
7 years ago
Roger A. Light 0632549ce9 Doc improvements for websockets_header_size. 7 years ago
Pierre Fersing 1aaf5f2348 Add websockets_headers_size option
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
7 years ago
Roger A. Light 1924afe49e Add explicit support for TLS v1.3 and drop TLS v1.0. 7 years ago
Roger A. Light 130ddf47f7 Add `dhparamfile` option, to allow DH parameters to be loaded.
This is for Ephemeral DH support on listeners.
7 years ago
Roger A. Light dfbd33e0f4 Update documentation for bridge backup, plus tweaks
Sets default to use the backoff mechanism.
7 years ago
Abilio Marques 1773938d98 bridge: modify documentation for restart_timeout
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
7 years ago
Roger A. Light e334aad853 Rewrite bind_interface docs, update changelog. 7 years ago
Steven Lawrance 208c3d3e85 Allow binding a listener to a specific network interface
Signed-off-by: Steven Lawrance <stl@koffein.net>
7 years ago
Roger A. Light 5aabc171b0 Merge branch 'mqtt5' into develop 7 years ago
Roger A. Light e862a047a8 Rework TLS engine support. 7 years ago
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>
7 years ago
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>
7 years ago
Nicolás Pernas Maradei f88cc06435 Add TLS engine and keyform support to libmosquitto
- Clients can now offload crypto tasks to an external crypto device through
  the OpenSSL ENGINE API.
- The keyfiles can now be treated as PEM or ENGINE keys.
- Two new functions were added to libmosquitto to set up the previously
  mentioned features.
- Both mosquitto_sub and mosquitto_pub include support to turn on the mentioned
  features through command line options.

Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
7 years ago
Roger A. Light 1d17ced449 Broker configurable max_packet_size
Plus tests.
7 years ago
Roger A. Light 8350956a08 Make include_dir sort usefully case sensitive. 7 years ago
Roger A. Light 1a6c3f0c86 Improve documentation around the `include_dir` option.
Closes #1154. Thanks to Guzoft.
7 years ago
Roger A. Light 084062c85e Merge branch 'fixes' into mqtt5 7 years ago
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.
7 years ago
Roger A. Light ce1d0ae364 Man page can now be built on any system.
Closes #1139. Huge thanks to Chris Mayo.
7 years ago
Roger A. Light 9df6da16ec Improve documentation of use_identity_as_username.
Closes #1134. Thanks to Adrian P.
7 years ago
Roger Light c40957a7d8 Fix and tests for CVE-2018-12546. 7 years ago
Roger A. Light 760b2f125c Make table more consistent with preceding documentation. 7 years ago
Roger A. Light 495e9647c2 Improve bridge remapping documentation. 7 years ago
Roger A. Light 4a2e569171 -V now accepts `5, `311`, `31`, as well as `mqttv5` etc. 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 fcf4cd0b27 Merge branch 'master' into mqtt5 7 years ago
Roger A. Light db7901884f Retain-as-published support. 7 years ago
Roger A. Light 6ef2c79e9a Add max_keepalive, for limiting keepalives of MQTT v5 clients. 7 years ago
Roger A. Light 48c2217015 auto_id_prefix now defaults to 'auto-'. 7 years ago
Roger A. Light d29dac087d Add socket_domain option. 7 years ago
Roger Light 9560c5bac7 Add retain_available support. 7 years ago
Roger A. Light 55b46037da Change -y to -D in clients. 7 years ago
Roger A. Light 12cba75c73 Client support for adding properties. 7 years ago
Roger Light 6c9e8d51c2 Merge branch 'develop' into mqtt5 7 years ago
Roger A. Light 1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
7 years ago
Roger A. Light 0e76bed50e Add -E option to mosquitto_sub.
This causes the client to exit immediately after its subscriptions are
acknowledged by the broker, and can be used to create a durable client
session without requiring messages to be delivered.

Closes #952.
7 years ago
Roger A. Light d9fc9cd0ae Add allow_zero_length_clientid, auto_id_prefix documentation.
Closes #600.
7 years ago
Roger A. Light 008d424a33 Minor documentation fix. Closes #520. 7 years ago
Roger A. Light 8aef00d3df Add website. 7 years ago
Roger A. Light dea03071d4 Add link to tls asciicast.
Closes #968.
7 years ago
Roger A. Light 33a523eea9 Add identifiers for v5.
Clients know about v5, just need library support...
7 years ago
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>
7 years ago
Roger A. Light 5e60136449 Merge branch 'develop' 8 years ago
Roger A. Light a50d7c7f04 pub/sub typo. 8 years ago
Roger A. Light 9476d8abcb Document mosquitto_sub timeout. 8 years ago
Roger A. Light ba3b41ef60 Make it much clearer how to enable TLS mode for clients.
Closes #776.
8 years ago
Roger A. Light 8676cc0359 Replace mentions of deprecated 'c_rehash' with 'openssl rehash'. 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
Roger A. Light b2e1592376 Per listener allow_anonymous. 8 years ago
Roger A. Light d55da837aa Add %X for upper case hex printing. 8 years ago
Roger A. Light bc13eab9d6 Add per_listener_settings, which isn't used yet. 8 years ago
Roger A. Light 80f567975c Merge branch 'fixes' 8 years ago
Roger A. Light ec63d7bfc7 Add set_tcp_nodelay option to disable Nagle's algorithm.
Bug: https://github.com/eclipse/mosquitto/issues/433
8 years ago
Roger A. Light 81cb7ab547 Merge branch 'fixes' into develop 8 years ago
Roger A. Light 2283585e39 Remove build timestamp information for reproducible builds. 8 years ago
Roger A. Light 8025f5a29b Fix ansi function declarations in html output. 8 years ago
Pierre Fersing 60cb8bedb0 Fix <option> closing too early in man page
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
8 years ago
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>
8 years ago
Pierre Fersing 71a748e1c4 Remove duplicated bridge_attempt_unsubscribe option
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
8 years ago
Michael Heimpold 48dec391f7 Quote ${DESTDIR} usage in various Makefiles
This prevents failures during make install when whitespace
is part of DESTDIR pathname.

Signed-off-by: Michael Heimpold <michael.heimpold@i2se.com>
8 years ago
Roger A. Light a0c86aa31a Fix man page typo. 8 years ago
Roger A. Light 5a267368d7 Merge branch 'master' into develop 8 years ago
Srikanth Anantharam 88f72f3f14 fixed a typo in the manpage (#476)
Signed-off-by: Srikanth Anantharam <sria91@gmail.com>
8 years ago
Srikanth Anantharam 58757639d2 added missing information to the mosquitto-tls manpage (#479)
Signed-off-by: Srikanth Anantharam <sria91@gmail.com>
8 years ago
Roger A. Light ef7a7850ac Add -c to mosquitto_pub. 8 years ago
Roger A. Light e74203de2c Merge branch 'master' into develop 8 years ago
Roger A. Light d72ec39d79 Don't clean man pages with 'clean' target. 8 years ago
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>
8 years ago
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
8 years ago
Roger A. Light fe8fef27ee Make bug urls clickable. 8 years ago
Roger A. Light 6f9842ae02 Fix man page links. 8 years ago
Roger A. Light 974c0aface Fix broken link in man page. 8 years ago
Roger A. Light a88acdd122 Fix issues url. 9 years ago
Roger A. Light 91b308a11d Merge branch 'master' into develop 9 years ago
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>
9 years ago
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>
9 years ago
Karl Palsson 642e141c23 conf: max_queued_messages: clarify per client limit
Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 30c96f4a1c broker: track stored messages in bytes as well as count
Instead of simply tracking the count of stored messages, keep track of
the total byte size of stored messages.  While only informational at
this point, it provides the basis for byte based limits in the future.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Roger A. Light 840453c14f Remove -x from mosquitto_sub - this is provided by -F now. 9 years ago
Roger A. Light 8140ce1f24 Add -F to mosquitto_sub to allow users to choose the output format. 9 years ago
Roger A. Light a0d6da1604 [225] Fix typo in man page.
Closes #225. Thanks to Nabytovych.

Bug: https://github.com/eclipse/mosquitto/issues/225
9 years ago
Roger A. Light 1c3988a397 Merge branch 'master' into develop 9 years ago
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
9 years ago
Roger A. Light 99ea5cab7c Default to using port 8883 when using TLS. 10 years ago
Roger A. Light bd61d18e92 Small tidy up. 10 years ago
Matteo Croce 59c80d9197 Add MQTT URL scheme support
Add option -L to specify user, password, hostname, port and topic at once.
The URL must provided with the -L or --url in the form:
mqtt(s)://[username[:password]@]host[:port]/topic

Change-Id: Ia626a28981a38807a254ae32c6ffb29b122b8a28
Signed-off-by: Matteo Croce <matteo@openwrt.org>
10 years ago
Roger A. Light 26b015908e Default to using MQTT v3.1.1. 10 years ago
Roger A. Light 1961404ec9 Add --retained-only to mosquitto_sub. 10 years ago
Roger A. Light 4e4c08aaf0 "retained" -> "want_retained". 10 years ago
Roger A. Light 7709621911 Reorder helper function arguments for consistency. 10 years ago
Roger A. Light 0a95c9a3af Add mosquitto_subscribe_callback(). 10 years ago
Roger A. Light 896b4563fb Add missing helpers code. 10 years ago
Roger A. Light b83c58763d Add mosquitto_subscribe_single()/multiple(). 10 years ago
Roger A. Light fca9ac84f7 Merge fixes into develop. 10 years ago
Roger A. Light 3aa698d023 Add -U to mosquitto_sub for unsubscribing from topics. 10 years ago
Roger A. Light 559e2438cb Revert "Add support for sending direct messages to clients."
This reverts commit 8f54cde293.
10 years ago
Roger A. Light f58f8aac0f Document updates. 10 years ago
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.
10 years ago
Roger A. Light 4b9b792d16 Update all mqtt 3.1 references to 3.1.1 where appropriate. 10 years ago