Commit Graph

939 Commits

Author SHA1 Message Date
Roger A. Light
e755827f4f Free outgoing client messages even for non-bridges. 2020-05-05 15:37:04 +01:00
Roger A. Light
ee7d1981ff Merge branch 'rfc-bridge-local-clean' of git://github.com/etactica/mosquitto into etactica-rfc-bridge-local-clean 2020-05-05 14:33:02 +01:00
Roger A. Light
d3247a830a Fix memory leak when connecting clients are rejected. 2020-05-05 14:31:13 +01:00
Roger A. Light
c5d6f32341 Be more tolerant when loading persistence files. 2020-05-01 21:51:07 +01:00
Roger A. Light
ff2b111cb3 Fix minor memory leak when load bridge prefixes. 2020-04-30 17:06:51 +01:00
Roger A. Light
4392320bc3 Fix memory leak when cleaning all shared subs. 2020-04-30 16:58:46 +01:00
Roger A. Light
ea47f6b0dc Clearer client disconnection message. 2020-04-28 10:42:49 +01:00
Roger A. Light
cef9d891ae Tidy up main(). 2020-04-08 11:34:31 +01:00
Roger A. Light
c72dd39f92 Allow MQTT v5.0 outgoing bridges to fall back to MQTT v3.1.1
This applies if connecting to a v3.x only broker.
2020-04-02 10:26:36 +01:00
Roger Light
986bf89f47 Prototype separate poll/epoll files. 2020-03-26 10:35:02 +00:00
Roger A. Light
c3e824ee22 Remove duplicate strlen() calls. 2020-03-26 09:32:01 +00:00
Roger A. Light
95faff36aa Fix ref counting of retained messages. 2020-03-26 09:11:50 +00:00
Roger A. Light
0b7b7389b0 Remove duplicate UTF-8 check
All strings are already validated in packet__read_string().
2020-03-26 09:09:11 +00:00
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>
2020-03-20 12:35:06 +00:00
Roger A. Light
d96543c0b8 Merge branch 'fixes' into develop 2020-03-03 12:54:57 +00:00
Roger A. Light
b0a065f790 Update changelog. Release page. Bump copyright. 2020-02-27 23:26:58 +00:00
Roger A. Light
0c68c20d2b Fix mosquitto_client_protocol() returning incorrect values. 2020-02-27 15:01:41 +00:00
Roger A. Light
db02c9162d Add plugin that prints out calls, to help debugging. 2020-02-27 15:01:41 +00:00
Roger A. Light
032af6bf69 Add missing header 2020-02-27 15:01:41 +00:00
Roger A. Light
c4e41f3444 Back port db_dump from develop.
Closes #1519. Thanks to Christoph Krey.
2020-02-06 16:44:04 +00:00
Roger A. Light
2a8c1d03f5 Merge branch 'coverity-fixes' into fixes 2020-02-06 16:20:52 +00:00
Gianfranco Costamagna
078ad752cd cmake: add ADNS enable/disable dynamic support
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
2020-02-06 15:24:09 +00:00
Gianfranco Costamagna
e9a7150031 Bugfix: enabling DLT was overriding everything else on linker flags because of error in cmake set keyword
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
2020-02-06 15:21:40 +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
ed5db1bd6b Fix bind_interface not working for the default listener.
Closes #1533. Thanks to Markus Gothe.
2020-01-30 22:48:15 +00:00
Roger A. Light
e188a6b500 More whitespace trimming fixes/consolidation. 2020-01-30 22:26:13 +00:00
Roger A. Light
32969169f7 Trim whitespace from acl topics. 2020-01-30 19:55:55 +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
9a0de5ef61 Free log_timestamp_format on exit.
Closes #1523. Thanks to Basavesh Shivakumar.
2020-01-30 16:19:10 +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
3220790790 Merge branch 'bugfix-MemoryLeak_in_persist_read' of git://github.com/panava/mosquitto into panava-bugfix-MemoryLeak_in_persist_read 2020-01-30 12:40:16 +00:00
Roger A. Light
50735afb5b Fix for internal logging not printing. 2020-01-29 16:25:56 +00:00
Panagiotis Vasilikos
618413e1d2 Resource leak in persist_read.c
Reason: In lines 435 and 439, the function returns without calling closing
fptr which was opened at line 399.

Fix: I added fclose(fptr) statements before each of the returns.
Signed-off-by: Panagiotis Vasilikos <panagiotis.vasilikos@alexandra.dk>
2020-01-29 13:30:24 +01:00
Roger A. Light
9ae38788dc Fix config->user not being freed on exit.
Closes #1564. Thanks to back1127.
2020-01-28 16:52:14 +00:00
Roger A. Light
812c0636d5 Satisfy valgrind when exiting on error.
This is when due to not being able to open a listening socket, solved by
calling freeaddrinfo in the error cases.

Closes #1565. Thanks to back1127.
2020-01-28 16:12:45 +00:00
Roger A. Light
e7c9f009bd Strip whitespace from end of config file string options.
Closes #1566. Thanks to kollokollo.
2020-01-28 16:04:25 +00:00
Panagiotis Vasilikos
49bf788862 Memory leak in handle_unsubscribe.c
Reason: In line 70, the memory allocation for the pointer reasons_codes may
result to a memory leak due to the many returns (e.g as the one in line 78)
occuring in the program's path until reaching the mosquitto__free at line 122.

Fix: I added a mosquitto__free(reason_codes) statement before each return
statement that could result to a memory leak

Signed-off-by: Panagiotis Vasilikos <panagiotis.vasilikos@alexandra.dk>
2020-01-28 16:31:15 +01:00
Panagiotis Vasilikos
0f7052564c Memory leak in handle_unsubscribe.c
Reason: In line 70, the memory allocation for the pointer reasons_codes may
result to a memory leak due to the many returns (e.g as the one in line 78)
occuring in the program's path until reaching the mosquitto__free at line 122.

Fix: I moved the memory allocation code block (lines 69-73) just before
the line 102. This is the first place the pointer reason_codes is used, while
the following mosquitto__free operators free the allocated memory correctly.

Signed-off-by: Panagiotis Vasilikos <panagiotis.vasilikos@alexandra.dk>
2020-01-24 16:34:56 +01:00
Roger A. Light
5528dde56a Fix possible null dereferences. 2020-01-23 12:51:12 +00:00
Roger A. Light
05ec02b3f3 Remove dead values. 2020-01-23 10:55:49 +00:00
Roger A. Light
18f0508a6e Fix dereference before null check.
Coverity Scan 1405815.
2020-01-23 10:08:26 +00:00
Roger A. Light
db62f9843f Fix unused value being overwritten.
Coverity Scan 1400727.
2020-01-23 09:35:28 +00:00
Roger A. Light
d452ea138b Use presence of password file as indicator for authentication checks.
Previously, authentication checks would only take place if usernames
were defined in the password file.

Closes #1545. Thanks to Timothy Godfrey.
2019-12-20 00:19:17 +00:00
Roger A. Light
b6119bb759 Check ACL patterns for validity when loading.
Closes #1539. Thanks to Leon Poon.
2019-12-18 21:39:27 +00:00
Roger A. Light
e5561cd09e Fix db_dump compilation.
Closes #1520.
2019-12-12 16:54:23 +00:00
Roger A. Light
c8789180f3 Fix session expiry with very large expiry intervals.
Closes #1525. Thanks to Christoph Krey.
2019-12-12 09:40:37 +00:00
Roger A. Light
8a6f179c83 Fix comment. 2019-12-11 15:15:40 +00:00
Roger A. Light
3f0c202aa5 Reduce heap allocation churn when tokenising topics. 2019-12-11 13:23:59 +00:00
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
2019-12-03 13:59:05 +00:00