Commit Graph

721 Commits

Author SHA1 Message Date
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
Titouan Christophe
79051fbdca do not include pthread when compiling without threading support
This fixes the following error, when compiling for systems without
pthread support, and when passing WITH_THREADING=no to make:

    thread_mosq.c:24:12: fatal error: pthread.h: No such file or directory
     #  include <pthread.h>
                 ^~~~~~~~~~~
    compilation terminated.

Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
2020-08-18 22:52:29 +01:00
Karl Palsson
2fdb5a0171 docs: move _string_option with rest of client options
It was grouped with the callbacks, where it didn't make a lot of sense.

Signed-off-by: Karl Palsson <karlp@tweak.net.au>
2020-08-18 22:51:42 +01:00
Karl Palsson
d254ea70df docs: remove duplicate mosquitto_reconnect_delay_set
Was listed in both client options, and under the callbacks.

Signed-off-by: Karl Palsson <karlp@tweak.net.au>
2020-08-18 22:51:42 +01:00
Roger A. Light
c9218fd48c Bump version. 2020-08-11 12:05:32 +01:00
Roger A. Light
b3c2ac20dc Fix overly broad HAVE_PTHREAD_CANCEL compile guard.
Closes #1547. Thanks to Markus Gothe.
2020-08-11 11:02:38 +01:00
Roger A. Light
4b100df5b1 Fix reconnect+will delay interval issue causing missing messages.
Fix clients not receiving messages after a previous client with the same   client ID and positive will delay interval quit.
Closes #1752. Thanks to Jiří Zuzaňák.
2020-08-11 11:01:25 +01:00
Roger Light
4ef48269f5 Fix mosquitto_loop_stop() not stopping on Windows
Closes #1748. Closes #117. Thanks to Sigmund Vik.
2020-08-11 08:55:05 +01:00
Roger A. Light
bd27935ff6 mosquitto_loop_start() now sets a thread name.
This applies on Linux, FreeBSD, NetBSD, and OpenBSD.

Closes #1777. Thanks to ABuch19.
2020-08-10 22:51:17 +01:00
Roger A. Light
f180e923ef Merge branch 'lazy_ssl' of git://github.com/abiliojr/mosquitto into abiliojr-lazy_ssl 2020-08-07 16:42:30 +01:00
Roger A. Light
9b5112f547 Fix unsigned compared against 0.
Coverity Scan 1431132.
2020-08-06 13:43:57 +01:00
Roger A. Light
1b060bb064 Guard against use-after-free.
Coverity Scan 1431131, 1431135, 1431141.
2020-08-06 13:36:24 +01:00
Roger A. Light
84e4ba2c1e Send DISCONNECT with malformed-packet reason code on bad PUBLISHes. 2020-08-02 23:12:47 +01:00
Abilio Marques
d5aae3eca7 lazy init SSL
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2020-07-23 17:48:56 +02:00
Roger A. Light
d371b3c58b Fix mosquitto_publish*() no longer returning MOSQ_ERR_NO_CONN.
This was always returning success when the client was not connected.

Closes #1725. Thanks to BOTorioN.
2020-07-15 20:25:36 +01:00
Roger A. Light
d9003bb858 Don't use mutex until it is initialised.
Coverity Scan 1430456.
2020-07-15 12:12:51 +01:00
Roger A. Light
e3e8dc4ea4 Allow send__pub{ack,rec,rel,comp} to send properties. 2020-07-10 12:29:53 +01:00
Roger A. Light
c8964228e3 Improved documentation around connect callback return codes.
Close #1730. Thanks to John Laird.
2020-06-22 21:45:50 +01:00
Jasper Lievisse Adriaanse
4ef7ea6244 extend ifdef guard to fix compilation on OpenBSD
otherwise in6_addr, AF_INET and AF_INET6 end up being undefined

Signed-off-by: Jasper Lievisse Adriaanse <jasper@humppa.nl>
2020-06-17 15:54:24 +01:00
Roger A. Light
a9c97efaa4 Document that keepalive must be >= 5 seconds. 2020-06-10 15:21:01 +01:00
Roger A. Light
cea0423e69 Update changelog and version. 2020-05-25 23:40:15 +01:00
Martin Kelly
8d54aaef89 add a refcount to library init/cleanup
Add a refcount around mosquitto_lib_init and mosquitto_lib_cleanup so
that multiple calls to init/cleanup don't trigger memory leaks or
double-frees.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2020-05-20 11:20:39 +01:00
Martin Kelly
d103174b5c correct mosquitto.h return code documentation
We currently erroneously claim that mosquitto_lib_init cannot fail,
while it can fail on Windows, if WSAStartup fails in net__init. Correct
this.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2020-05-20 10:59:00 +01:00
Martin Kelly
61a50c60d2 add a refcount to library init/cleanup
Add a refcount around mosquitto_lib_init and mosquitto_lib_cleanup so
that multiple calls to init/cleanup don't trigger memory leaks or
double-frees.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2020-05-20 10:57:40 +01:00
Roger A. Light
762ad432e8 Fix support for openssl 3.0 2020-05-12 13:39:49 +01:00
Roger A. Light
21f203b91a Don't treact unexpected PUBACK/COMP as fatal. 2020-03-28 23:33:01 +00:00
Roger A. Light
f0deb9a5a1 CMake: Make building clients, broker and C++ library optional.
Issue #1641.
2020-03-27 21:57:06 +00:00
Karl Palsson
efb21fb09c doc: lib clarify _topic_check functions
Removed some whitespace and copy paste errors.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
8c16d7cd50 doc: add mqtt5 property options.
This just gets them all listed, explaining the available apis where they
could be used is left as further work.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
1b4b6f4a2c doc: lib: properly flag code samples for formatting
Uses the NaturalDocs 1.5 compatible style. (Forward compatible with v2)
Uses > for short snippets and the tagged style for longer snippets.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
fd83d2274f doc: lib: avoid unintended code formatting
Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
1331399228 doc: lib: specifically document mqtt5_sub_options
This makes the documentation of the options available in
https://mosquitto.org/api/files/mosquitto-h.html#mosquitto_subscribe_v5
a lot cleaner. (and also _subscribe_multiple())

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
d46707fe02 doc: lib_vesion: correctly format return values
Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
765f7343c2 doc: lib: _xxx_option() and opts_set() cleanup list syntax
This change improves the option list rendering by correctly triggering
naturaldocs detection of the lists.  No change other than line breaks
and whitespace.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Karl Palsson
6c7ef15112 doc: lib: group all _option functions together.
_string_option was grouped with the callbacks instead of _int_option and
_void_option.  Grouped them all together neatly.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2020-03-19 16:40:48 +00:00
Roger A. Light
a16d7e0661 iDon't treat an unexpected PUBREL as fatal.
Issue #1629. Thanks to radcrabs.
2020-03-19 15:38:29 +00:00
Roger A. Light
346f695937 Separate out delay code from previous commit.
Plus add missing header.
2020-03-12 13:53:44 +00:00
Roger A. Light
5cf94d2e57 Merge branch 'fixes' of git://github.com/ChristianS99/mosquitto into fixes 2020-03-12 13:52:00 +00:00
Roger A. Light
7f41e37f0f Fix use of sed on BSD.
Closes #1614. Thanks to Christoph Krey.
2020-03-12 11:52:58 +00:00
Roger A. Light
c84d175b3d Fixes for the poor souls stuck on <c99.
Closes #1622.
2020-03-12 10:29:11 +00:00
Roger A. Light
d96543c0b8 Merge branch 'fixes' into develop 2020-03-03 12:54:57 +00:00
Roger A. Light
b544b46156 Update version. 2020-02-27 23:27:29 +00:00
Roger A. Light
b0a065f790 Update changelog. Release page. Bump copyright. 2020-02-27 23:26:58 +00:00
Roger A. Light
b6a54a21d8 Remove duplicate code. 2020-02-12 16:47:46 +00:00
Roger A. Light
8d5fd7d1e2 Fix mosquitto_topic_matches_sub() behaviour with wildcards in topic.
It was not returning MOSQ_ERR_INVAL if the topic contains a wildcard.

Closes #1589. Thanks to mdelete.
2020-02-07 22:55:50 +00:00
Roger A. Light
2a8c1d03f5 Merge branch 'coverity-fixes' into fixes 2020-02-06 16:20:52 +00:00
Gianfranco Costamagna
7a5c2d4da5 Bugfix: include "deps" directory only if BUNDLED_DEPS has been provided and set to true
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
2020-02-06 15:20:29 +00:00
Roger A. Light
3a89059271 Don't call SSL_shutdown() if SSL init hasn't completed. 2020-02-04 17:11:11 +00:00
Roger A. Light
07c54627e9 Print OpenSSL errors in more situations
Covers when loading certificates fails, or there are ENGINE problems.

Closes #1552. Thanks to Michael Richardson.
2020-02-04 16:59:29 +00:00
Roger A. Light
27b4518d7e Improve password file parsing in the broker and mosqitto_passwd.
Closes #1584. Thanks to panava.
2020-02-04 16:38:51 +00:00
Roger A. Light
e188a6b500 More whitespace trimming fixes/consolidation. 2020-01-30 22:26:13 +00:00
Roger A. Light
70fd600c3a Fix trailing whitespace not being trimmed on acl users.
Closes #1539. Thanks to CliveJL and LeonPoon.
2020-01-30 19:52:46 +00:00
Roger A. Light
81641df043 Expose net__print_ssl_error() prototype. 2020-01-30 15:14:52 +00:00
Roger A. Light
11ece604c4 Merge branch 'bugfix-MemLeak_in_handle_unsubscribe' of git://github.com/panava/mosquitto into panava-bugfix-MemLeak_in_handle_unsubscribe 2020-01-30 14:22:12 +00:00
Roger A. Light
89b55094c0 Merge branch 'bugfix-NullDeref_in_util_mosc.c' of git://github.com/panava/mosquitto into panava-bugfix-NullDeref_in_util_mosc.c 2020-01-30 12:43:09 +00:00
Roger A. Light
50735afb5b Fix for internal logging not printing. 2020-01-29 16:25:56 +00:00
Panagiotis Vasilikos
dd6d8237cb Potential Null pointer dereference in util_mosq.c
Reason: There is no check that the mosquitto__malloc at line 162 was sucessfull.
This could result to a Null pointer dereference in the memcpy call at line 166.

Fix: I added the check.
Signed-off-by: Panagiotis Vasilikos <panagiotis.vasilikos@alexandra.dk>
2020-01-29 10:17:58 +01:00
Roger A. Light
8f1c8cba59 Set minimum keepalive argument to mosquitto_connect*() to be 5 seconds.
Closes #1550. Thanks to Markus Gothe.
2020-01-28 16:59:20 +00:00
Panagiotis Vasilikos
caeb211cc5 Memory leak in socks_mosq.c
Reason: The memory allocated for the packet pointer at line 155 is not freed
before returning at line 188.

Fix: I inserted the mosquitto__free(packet) statement just before returning
at line 188.

Signed-off-by: Panagiotis Vasilikos <panagiotis.vasilikos@alexandra.dk>
2020-01-28 11:34:11 +01:00
Roger A. Light
4408339dbc Make consts unsigned where they are compared against unsigned. 2020-01-23 12:51:47 +00:00