Roger A. Light
9d6a73f9f7
Fix CONNECT performance with many user-properties.
...
An MQTT v5 client connecting with a large number of user-property properties
could cause excessive CPU usage, leading to a loss of performance and
possible denial of service. This has been fixed.
2021-08-26 12:17:42 +01:00
Roger Light
32af599c81
Fix $share subscriptions not being recovered for durable clients.
...
If a plugin had granted ACL subscription access to a
durable/non-clean-session client, then removed that access, the client would
keep its existing subscription. This has been fixed.
2021-08-26 12:17:26 +01:00
Roger A. Light
376226c129
Build warning fixes.
2021-08-26 10:54:03 +01:00
Roger A. Light
9b25dd3b0d
libressl build fixes.
...
Closes #2198 . Thanks to Theo Buehler.
2021-08-24 13:53:03 +01:00
Roger A. Light
0d1837ebe3
Deconfigure thread mode when the loop thread ends.
...
Threaded mode is deconfigured when the mosquitto_loop_start() thread ends,
which allows mosquitto_loop_start() to be called again.
Closes #2242 . Thanks to Timo Lange.
2021-08-24 11:51:38 +01:00
Roger A. Light
9526b4cf23
Check for file==dir only when reading.
2021-08-23 23:19:37 +01:00
Roger Light
ba2ca33671
Strict protocol compliance fixes, and extensive test suite.
2021-08-23 23:19:28 +01:00
Roger Light
723b5d7081
Fix listener mount_point not being removed on outgoing messages.
...
Closes #2244 . Thanks to alflexRH.
2021-08-22 08:23:13 +01:00
Roger Light
6608e852a1
Fix broker not quiting if password_file
is specified as a directory.
...
Closes #2241 . Thanks to Bryan Pearson.
2021-08-21 22:45:39 +01:00
Roger Light
93b2232bb9
Apply max_keepalive to MQTT v3.1.1 and v3.1 clients.
2021-08-20 23:27:14 +01:00
Roger A. Light
ea371564e7
Disable TLS 1.3 when using TLS-PSK, because it isn't correctly config'd.
2021-08-19 17:26:04 +01:00
Roger A. Light
a37c8e65d2
TLS-PSK mismatch fix.
...
Produce an error if a TLS-PSK client tries to connect to a broker
that is not configured with TLS-PSK.
2021-08-19 17:26:04 +01:00
Roger A. Light
79542158f4
Fix max_connections
option not being correctly counted.
2021-08-17 13:10:18 +01:00
Roger A. Light
4e146b7b53
Fix possible out of bounds memory reads when reading configuration.
...
This would happen with a corrupt/crafted configuration file. Unless your
configuration file is writable by untrusted users this is not a risk.
Closes #567213 . Thanks to Roland Sako.
2021-07-22 16:43:06 +01:00
Roger A. Light
8416f928df
Revert premature want_connect fix.
2021-06-08 22:26:14 +01:00
Roger A. Light
403691ce40
Add missing return types.
2021-06-08 22:25:59 +01:00
Roger A. Light
104b94db57
Fix non-reachable bridge blocking the broker on Windows.
...
Closes #2172 . Thanks to Niclas Lindgren.
2021-06-08 12:07:24 +01:00
Roger A. Light
625e2a5060
Refactor to remove duplicate code.
2021-06-08 11:59:12 +01:00
Roger A. Light
16fb0025a7
Improve QoS 0 outgoing packet queueing.
2021-05-18 16:53:45 +01:00
Roger Light
9bb58a88fc
Cleanup messsage before return.
...
Coverity scan #1451483 .
2021-05-16 19:57:59 +01:00
Roger A. Light
a2ab20df13
Don't call read() if sockpairR < 0.
...
Coverity #1450782 .
2021-05-06 21:04:49 +01:00
Roger Light
b4c86df6f5
Fix missing control path.
...
Closes #2190 . Thanks to RengeRenge.
2021-04-25 23:10:06 +01:00
Roger Light
e1c8f09372
Remove C++ style comments.
2021-04-25 22:26:12 +01:00
Christian Beier
fe10226cc9
Fix building with Visual Studio 2008
...
This older Microsoft compiler does not support mixing declarations and
code and misses some error defines. This commit enables building with
VS2008 by moving up some variable declarations and defining error
codes to their WinSock counterparts in case they're not defined.
Signed-off-by: Christian Beier <info@christianbeier.net>
2021-04-18 21:23:25 +02:00
Roger Light
6ebbb4d654
Fix possible socket leak.
...
This would occur if a client was using `mosquitto_loop_start()`, then if
the connection failed due to the remote server being inaccessible they
called `mosquitto_loop_stop(, true)` and recreated the mosquitto object.
See: https://www.eclipse.org/forums/index.php?t=rview&goto=1839865#msg_1839865
2021-04-02 11:03:01 +01:00
Roger Light
0f9e5795a2
Merge pull request #2145 from abiliojr/empty_sockpairR
...
Fully empty sockpairR on interruptible_sleep
2021-03-22 10:34:57 +00:00
Abilio Marques
dd4a64b049
fully empty socketpairR on interruptible_sleep
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2021-03-22 08:15:47 +01:00
Abilio Marques
91f34e084f
fix duplication of messages during connect
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2021-03-22 07:59:37 +01:00
Roger Light
2de8c15bc9
Minor build fixes.
2021-03-21 09:18:43 +00:00
Roger Light
cca41d176d
Fix inconsistent sign in log__printf declaration.
2021-03-20 19:16:43 +00:00
Roger A. Light
f8838243fb
Fix connections retrying very rapidly in some situations.
...
Thanks to Abilio Marques.
2021-03-11 21:04:51 +00:00
Roger A. Light
b7a08d5c40
Fix TLS bridge/lib incorrectly connecting on invalid CA file.
...
Closes #2130 . Thanks to becz.
2021-03-11 12:45:04 +00:00
Roger A. Light
e401def06d
Fix QoS 0 messages not being delivered when max_queued_bytes was configured.
...
Closes #2123 . Thanks to quackgizmo.
2021-03-08 23:23:45 +00:00
Roger A. Light
2190e98b20
Fix memory tracking not being available on FreeBSD or macOS.
...
Closes #2096 . Thanks to blusewang.
2021-02-25 17:04:15 +00:00
Roger A. Light
9b08faf0bd
Fix mosquitto_{pub|sub}_topic_check() function returns.
...
The would not return MOSQ_ERR_INVAL on topic == NULL.
2021-02-09 14:09:53 +00:00
Roger A. Light
e98cc28cd3
Move check after current_out_packet is updated.
2021-01-28 09:29:52 +00:00
Przemek Zygmunt
18bad1ff32
Unconditionally adding an event to the epoll causes 100% CPU usage. This happens when the connection to the server is established and the client has not sent any data yet.
...
Signed-off-by: Przemek Zygmunt <p.zygmunt@acsoftware.pl>
2021-01-28 09:28:36 +00:00
Roger A. Light
6e3738dcf0
Fix bridges not always connecting on Windows.
...
Closes #2043 . Thanks to ttsorensen.
2021-01-26 13:19:08 +00:00
Roger A. Light
706a1f3f29
Fix more minor compiler warnings.
2021-01-21 13:33:54 +00:00
Roger A. Light
a4389fc9ce
Fix SPDX identifiers: EDL-1.0 -> BSD-3-Clause.
...
The two licenses are the same.
2021-01-20 11:46:18 +00:00
Roger A. Light
370cec5edd
Fixes for lots of minor build warnings highlighted by Visual Studio.
2021-01-09 21:06:08 +00:00
Roger A. Light
fabdfcc060
Further fix for large packets not being sent in a timely fashion.
2021-01-06 11:40:08 +00:00
Roger Light
c604cf8fd0
net__write buf should be const.
2021-01-03 20:52:45 +00:00
Roger A. Light
b2da540c64
Fix large packets not being completely published to slow clients.
...
Also fix bridge connection not relinquishing POLLOUT after messages are
sent.
Closes #1977 . Thanks to marchaesen.
Closes #1979 . Thanks to GorazdKikelj.
2020-12-27 23:03:38 +00:00
Roger A. Light
2db9aecac4
Do not reset bind address option if passed NULL.
...
mosquitto_connect_bind_async() and mosquitto_connect_bind_v5() should not
reset the bind address option if called with bind_address == NULL.
Otherwise calling mosquitto_connect_async() will *force* the bind
address to be reset, even if previously set with
mosquitto_string_option().
2020-12-20 17:21:17 +00:00
Roger A. Light
e02b5a2775
Fix $SYS/broker/publish/messages/+ counters not being updated for QoS 1, 2
...
Closes #1968 . Thanks to promahn.
2020-12-18 22:55:10 +00:00
Roger A. Light
757902bcf8
Improve struct packing.
2020-12-10 12:52:11 +00:00
Roger A. Light
d8dcfd75fe
lib: Fix DH group not being set for TLS connections.
...
This meant ciphers using DHE couldn't be used.
Closes #1925 . Closes #1476 . Thanks to Jonathan Sönnerup, Valerii
Demeshko, and sectokia.
2020-12-09 22:30:06 +00:00
Nikolay Raspopov
71845d28ac
Fixed some VS2017 compilation error and warnings ( #1916 )
...
* Fixed some VS2017 compilation errors and warnings.
Signed-off-by: raspopov <raspopov@cherubicsoft.com>
2020-12-02 15:59:45 +00:00
Roger A. Light
828e7ae130
More conversion fixes.
2020-12-02 10:41:58 +00:00
Roger A. Light
df1802d8f1
Fix client state conversion warnings.
2020-12-02 10:26:22 +00:00
Roger A. Light
232a759320
Log client port on new connections.
...
Closes #1911 . Thanks to twegener-embertec.
2020-12-01 22:38:59 +00:00
Roger A. Light
3731535298
Add SPDX license identifiers.
2020-12-01 20:46:56 +00:00
Roger A. Light
04c110183c
Bridge support for MQTT v5 maximum-qos.
2020-12-01 18:15:29 +00:00
Roger A. Light
e030ca45cd
Fix connack error printing.
2020-12-01 15:57:37 +00:00
Roger A. Light
0c22f475ff
Fix bridges incorrectly setting Wills to manage remote notifications.
...
This is for when `notifications_local_only` was set true.
Closes #1902 . Thanks to marcinkowskip.
2020-12-01 14:33:13 +00:00
Roger A. Light
b34dcd2a67
Final remove support for legacy libwebsockets
...
This means libwebsockets < 2.4.0.
2020-12-01 13:41:14 +00:00
Roger A. Light
29c771cdd4
Add lib and client support for OS CA certs
...
- Add `MOSQ_OPT_TLS_USE_OS_CERTS` option, to instruct the client to load and trust OS provided CA certificates for use with TLS connections.
- All clients now load OS provided CA certificates if used with `-L
mqtts://...`, or if port is set to 8883 and no other CA certificates are
used. Closes #1824 .
- Add the `--tls-use-os-certs` option to all clients.
Closes #1824 . Thanks to Jens Reimann.
2020-12-01 11:51:13 +00:00
Roger A. Light
a3258f7d82
Packet cleanup without locks
...
Prevents use of invalid mutexes during mosquitto_destroy.
Closes #1914 . Thanks to Nikolay Raspopov.
2020-11-27 15:36:34 +00:00
Roger A. Light
584cf51ba7
Update to EPL-2.0
2020-11-25 17:34:21 +00:00
Roger A. Light
dac841a342
Better outgoing QoS 0 limiting.
2020-11-25 10:00:45 +00:00
Roger A. Light
2755fe3c4c
Apply limits to QoS 0 outgoing messages.
2020-11-24 12:04:07 +00:00
Roger A. Light
4da1f15b41
Fix Coverity Scan errors.
...
1436854
1436844
2020-11-23 23:41:49 +00:00
Roger A. Light
d26534e22b
Fix Coverity scan issues.
...
1302840
1353078
1431131
1431134
1431135
1436826
1436827
1436828
1436830
1436831
1436834
1436835
1436838
1436839
1436840
1436844
1436846
1436853
1436854
1436859
1436860
1436861
1436863
1436867
2020-11-23 22:05:12 +00:00
Roger A. Light
4e3b8ed2b5
Fix cherry picked commit.
2020-11-18 17:16:50 +00:00
Roger A. Light
10ecae6275
Fix bridge sock not being removed from sock hash on error
...
Prior to this, duplicate entries could be added to the sock hash, which caused an infinite loop. Only affects bridges with bad settings on startup, and only when compiled using WITH_ADNS=yes.
Closes #1897 . Thanks to Rodolfo Ochoa.
2020-11-18 15:43:57 +00:00
Franz Auernigg
18a6d79ab8
Fix cmake if condition in lib/CMakeLists.txt
...
Signed-off-by: Franz Auernigg <f.auernigg@commend.com>
2020-11-11 09:42:40 +00:00
Roger A. Light
b816d46508
Use db as a global var instead of passing to functions.
...
This allows a big swath of ifdefs to be removed. It also means savings as the db var is not passed around all of the time, and makes it easier to remove the final broker call to mosquitto_time() call in packet_mosq.c. In one test this reduced the calls to mosquitto_time() from 295k to 48k.
2020-11-06 17:16:23 +00:00
Roger A. Light
108b23ce6d
Reduce use of mosquitto_time() and time().
2020-11-06 14:20:39 +00:00
Roger A. Light
c2651cf005
Remove deprecation warning on libmosquittopp.
2020-11-05 22:38:35 +00:00
Roger A. Light
23d3c2641e
Optimise epoll event to context/listener mapping. Allows quicker lookups.
2020-11-05 16:10:50 +00:00
Roger A. Light
4d6384c758
Build and conversion fixes for build variants.
2020-11-05 10:23:01 +00:00
Roger A. Light
8e7e4a9d9a
Clients: Give warning if keepalive too low.
2020-11-03 09:51:28 +00:00
Arenoros
9c3a214a01
In android ndk doesn't exist librt and libpthread
...
Signed-off-by: Arenoros <arenoros@gmail.com>
2020-11-02 21:36:24 +00:00
raspopov
add355a78b
QNX has no pselect() either.
...
Signed-off-by: raspopov <raspopov@cherubicsoft.com>
2020-11-02 21:33:09 +00:00
Roger A. Light
2e72d795a9
Fix timeout conversion error.
2020-10-30 21:31:13 +00:00
raspopov
0097a85ce0
Something bad happened with a "timeout" parameter of mosquitto_loop() function in 4f61f6c161
. Reverted.
...
Signed-off-by: raspopov <raspopov@cherubicsoft.com>
2020-10-30 18:40:22 +00:00
Roger A. Light
abbeb4494f
Change tls_version
option behaviour.
...
The `tls_version` option now defines the *minimum* TLS protocol version to
be used, rather than the exact version.
Closes #1258 . Thanks to Daniele Sluijters.
2020-10-27 16:44:03 +00:00
Roger A. Light
88b5daee66
Try very hard not to produce "Socket error" message.
...
This happens when an unhandled error occurs on a socket/read write. The
message is confusing to people.
2020-10-27 10:04:22 +00:00
Roger A. Light
e82ee879d5
Merge branch 'fixes' into develop
2020-10-27 00:43:07 +00:00
raspopov
53d63fe922
Fixed compilation error on Win32 UNICODE platform.
...
Signed-off-by: raspopov <raspopov@cherubicsoft.com>
2020-10-26 21:42:03 +00:00
raspopov
6af56610ac
Fixed "config.h" file placement to help using it as a precompiled header.
...
Signed-off-by: raspopov <raspopov@cherubicsoft.com>
2020-10-26 14:57:37 +00:00
Roger A. Light
7ae7d73fd4
The loop in packet_write() means that max_packets
isn't needed.
2020-10-21 21:16:58 +01:00
CJ Lee
988b5cf0b2
Add missing header for QNX
...
<arpa/inet.h> header is required to compile this source. Without it, WARNING is generated.
mosquitto/lib/socks_mosq.c: In function 'socks5__send':
mosquitto/lib/socks_mosq.c:156:22: warning: implicit declaration of function 'inet_pton' [-Wimplicit-function-declaration]
ipv4_pton_result = inet_pton(AF_INET, mosq->host, &addr_ipv4);
Signed-off-by: ChangJoon Lee <changjoon.lee@lge.com>
2020-10-21 19:39:31 +01:00
Roger A. Light
4f61f6c161
Fix conversion errors.
2020-10-17 01:23:08 +01:00
Roger A. Light
6104172bcf
Fix connect properties not being sent.
...
This was happening when the client automatically reconnected.
Closes #1846 . Thanks to DSOFreak.
2020-10-14 11:21:41 +01:00
Roger A. Light
9724710cd6
Add MOSQ_OPT_BIND_ADDRESS.
...
This allows setting of a bind address independently of the
`mosquitto_connect*()` call.
2020-10-14 10:31:46 +01:00
Roger A. Light
89733138bb
CMake build fixes.
2020-10-13 16:07:35 +01:00
Roger A. Light
a65f946e83
Move headers to own directory.
2020-10-07 22:06:01 +01:00
Roger A. Light
c90e49af1b
Merge remote-tracking branch 'origin/fixes' into develop
2020-09-24 17:03:14 +01:00
Roger A. Light
2774515456
Fix missing mach/mach_time.h header on OS X.
...
Closes #1831 . Thanks to P-Hagen.
2020-09-22 15:08:48 +01:00
Roger A. Light
acf4ff3738
Fix stdin being closed by mistake
...
This was closing the sockpair* sockets before they were initialised to INVALID_SOCKET.
Close #1823 . Thanks to ostkamp.
2020-09-14 19:35:22 +01:00
Roger A. Light
a53712a14d
Don't use logging until log mutex is initialised.
...
Closes #1819 . Thanks to santoshks68.
2020-09-11 17:02:15 +01:00
Roger A. Light
298d84941e
Fix send quota being incorrecly reset on reconnect.
...
Closes #1822 . Thanks to Sarek.
2020-09-11 13:34:51 +01:00
Roger A. Light
56ba1b99db
Add mosquitto_ssl_get()
.
...
This allow clients to access their SSL structure and
perform additional verification.
2020-09-10 15:50:47 +01:00
Roger A. Light
5daa5ee162
Add support for $CONTROL/ topics in plugins.
2020-09-10 15:32:47 +01:00
Roger A. Light
f0862e26ec
Add mosquitto_kick_client_by_clientid()
and mosquitto_kick_client_by_username()
...
These can be used by plugins to disconnect clients.
2020-09-07 13:51:44 +01:00
Roger A. Light
bb5456729d
Move keepalive check code to separate file.
...
This is in preparation for changing to a tree based implementation.
2020-09-05 22:59:50 +01:00
ignacy.ruksza
3806296c15
Ld symbol of the mosquitto_property_copy_all has global bind now.
...
Signed-off-by: ignacy.ruksza <ignacy.ruksza@ledatel.pl>
2020-09-02 16:29:03 +01:00
Roger A. Light
39ff7226eb
Bump version, add new www posts.
2020-08-19 14:46:44 +01:00