Roger A. Light
fb8a2baaad
Refactor client msgs to use utlist to reduce code complexity.
2019-04-03 14:13:12 +01:00
Roger A. Light
75c2a39d2c
Send topic alias maximum from the broker.
2019-03-27 17:38:35 +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
214a5f3aab
v5 persistence file format
...
This includes changes to improve read/write performance.
It is not complete, and will have further changes to add properties and anything else required for MQTT v5.
2019-03-21 00:35:56 +00:00
Roger A. Light
c90bd4e0c6
Add helper function for internal debug logging.
2019-03-17 21:30:56 +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
110f4aada6
Don't overwrite disused client state.
2019-03-15 21:38:24 +00:00
Roger Light
8a8d13cf96
Shared subscription support.
2019-03-14 06:48:33 +00:00
Roger A. Light
2dd24449ad
Fix "unused parameter" warnings.
2019-03-13 14:46:05 +00:00
Roger A. Light
b82370a997
Free clients with session expiry > 0 on exit.
2019-03-13 13:22:14 +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
ac91144495
Session expiry interval support - not working for file persistence.
2019-03-06 14:47:16 +00:00
Roger A. Light
ce31269e05
Update changelog, bump version, bump copyright year.
2019-02-28 16:56:15 +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
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
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
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
c506c8335b
Will delay tests and implementation.
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
1d17ced449
Broker configurable max_packet_size
...
Plus tests.
2019-02-19 15:57:20 +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
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
d6a690aa8d
Fix Will not being sent for Websockets clients.
...
Closes #1143 . Thanks to salcedo.
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 Light
5236295159
Handle mismatched handshakes properly.
...
For example, a QoS1 PUBLISH with QoS2 reply.
2019-02-08 13:01:07 +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
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
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
fcf4cd0b27
Merge branch 'master' into mqtt5
2018-12-19 14:11:11 +00:00
Roger A. Light
2919510384
No local support.
2018-12-14 13:54:26 +00:00
Roger A. Light
db7901884f
Retain-as-published support.
2018-12-14 13:36:02 +00:00
Roger A. Light
a00dd29af8
Fix building where TLS-PSK is not available.
...
Closes #68 .
2018-12-11 10:55:31 +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
d29dac087d
Add socket_domain option.
2018-12-04 11:48:29 +00:00
Roger A. Light
7020fad86c
Add server support for Assigned Client Identifier.
2018-11-29 17:19:26 +00:00
Roger A. Light
d5108956bf
Process session-expiry-interval on CONNECT and DISCONNECT.
...
Add test to check for invalid values.
2018-11-27 12:23:21 +00:00
Roger A. Light
54db895cb3
Rename clean_session to clean_start for v5.
2018-11-27 10:02:10 +00:00
Roger Light
9560c5bac7
Add retain_available support.
2018-11-22 18:21:40 +00:00
Roger Light
6ca746695f
Pass db to send__connack() to give it access to config.
2018-11-22 17:32:43 +00:00
Roger A. Light
f77c1ca91b
private struct mqtt5__property -> public mosquitto_property.
2018-11-01 23:50:54 +00:00
Roger A. Light
80f526a5e5
Message Expiry Interval support.
2018-11-01 21:51:35 +00:00
Roger A. Light
12cba75c73
Client support for adding properties.
2018-10-31 12:38:39 +00:00
Roger A. Light
8077376a79
Add read support for AUTH packets.
2018-10-25 12:54:17 +01:00
Roger A. Light
267178bd99
User properties are copied from PUBLISH to PUBLISH.
2018-10-25 10:24:19 +01:00
Roger A. Light
2b4ba10b3d
Fix "round_robin false" behaviour.
...
Closes #481 .
2018-09-19 17:30:38 +01:00
Roger A. Light
3ae387e232
Close spare sock at exit.
2018-09-19 13:01:13 +01:00
Roger A. Light
1e47ee4cad
Fix for bridge connections when using WITH_ADNS=yes.
2018-09-19 12:55:08 +01:00
Roger A. Light
d1b36507db
Better implementation of #948 .
2018-09-18 12:08:49 +01:00
Roger A. Light
ee8e20de75
Fix excessive CPU usage when the number of sockets exceeds the system limit.
...
Closes #948 . Thanks to wiebeytec.
2018-09-18 11:54:58 +01:00
Roger A. Light
ab5af8f0b9
Fix building for libwebsockets < 1.6.
2018-08-14 17:20:22 +01:00
Tatsuzo Osawa
cb56a75bbb
Fix subs memory issue #505
...
Signed-off-by: Tatsuzo Osawa <tatsuzo.osawa@gmail.com>
2018-08-09 15:25:52 +01:00
Tobias Assarsson
cc96485330
Add missing parameters to internal mosquitto_acl_check
...
Signed-off-by: Tobias Assarsson <tobias.assarsson@gmail.com>
2018-08-09 13:05:35 +01:00
Roger A. Light
2f6f5dbf9d
Fix problem on Pi caused by unsigned char being default.
...
Found via #849 .
Signed-off-by: Roger A. Light <roger@atchoo.org>
2018-08-02 21:06:47 +01:00
Roger A. Light
5e60136449
Merge branch 'develop'
2018-05-03 07:55:45 +01:00
Roger A. Light
23230b7b18
Add per-listener acl handling.
2018-05-01 22:54:25 +01:00
Roger A. Light
24d68b5af8
Remove support for openssl 1.0.0 and 1.0.1.
...
These are no longer supported by openssl.
2018-04-11 17:12:25 +01:00
Roger A. Light
f4d238be18
Bump copyright years.
2018-04-11 15:24:29 +01:00
Roger A. Light
dbdd113c86
Merge branch 'develop' of github.com:eclipse/mosquitto into develop
2018-03-26 22:57:32 +01:00
Roger A. Light
a979ed6535
Per listener plugins.
2018-03-26 15:23:00 +01:00
Roger A. Light
a3b859a995
Remove name confusion
2018-03-25 21:49:14 +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
fd7b08c0eb
Per listener psk_file.
2018-03-15 21:39:42 +00:00
Roger A. Light
b2e1592376
Per listener allow_anonymous.
2018-03-15 14:29:07 +00:00
Roger A. Light
aa87f3c170
Per listener allow_anonymous.
2018-03-15 12:18:19 +00:00
Roger A. Light
57e852db05
Per listener password file.
2018-03-13 17:52:04 +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
9c6a5f3cf0
[656] Fix building on Windows.
...
Thanks to Arun Kirthi Cherian.
Bug: https://github.com/eclipse/mosquitto/issues/656
2018-01-06 22:42:40 +00:00
Roger A. Light
0745bcdb91
Improve some struct ordering.
2017-08-12 00:25:59 +01:00
toast-uz
df9ad5f0bd
Add Epoll. ( #495 )
...
Signed-off-by: Tatsuzo Osawa <tatsuzo.osawa@gmail.com>
2017-07-27 18:43:09 +01:00
Roger A. Light
e74203de2c
Merge branch 'master' into develop
2017-07-16 22:52:01 +01:00
Roger A. Light
91b308a11d
Merge branch 'master' into develop
2017-03-06 21:19:53 +00:00
Roger A. Light
f72d9b3a34
[17] Sort include_dir files before loading them.
...
Bug: https://github.com/eclipse/mosquitto/issues/17
2017-02-19 20:29:04 +00: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
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>
2016-08-17 10:35:26 +00:00
Roger A. Light
883af8af53
Better subtree searching.
2016-07-19 15:05:53 +01:00
Roger A. Light
e4db6a760f
Backwards compatibility for auth plugins.
2016-07-10 23:17:30 +01:00
Roger A. Light
b40cedaf1d
More client accessors.
2016-07-09 21:49:13 +01:00
Roger A. Light
025e56fd4c
New mosquitto_auth_psk_key_get()
2016-07-08 13:52:02 +01:00
Roger A. Light
b3df015ea7
New mosquitto_unpwd_check().
2016-07-08 13:27:14 +01:00
Roger A. Light
ccedc6d709
Moving towards new mosquitto_acl_check().
2016-07-08 11:26:58 +01:00
Roger A. Light
017db6706f
Rename mosquitto_broker.h -> mosquitto_broker_internal.h
2016-07-08 10:10:04 +01:00