Commit Graph

939 Commits (3806296c15e93f32bb2c558d32f6885ad863f000)

Author SHA1 Message Date
Roger A. Light c1b009e4df Fix memory leak on handling QoS 2 PUBLISH.
In some circumstances, Mosquitto could leak memory when handling PUBLISH  messages. This is limited to incoming QoS 2 messages, and is related to the combination of the broker having persistence enabled, a clean session=false client, which was connected prior to the broker restarting, then has reconnected and has now sent messages at a sufficiently high rate that the incoming queue at the broker has filled up and hence messages are being dropped. This is more likely to have an effect where max_queued_messages is a small value. This has now been fixed.

Closes #1793. Thanks to mbates14.
5 years ago
Roger A. Light b3b58cc635 Build warning fixes. 5 years ago
Roger A. Light 4dc835b73d Fix possible memory leaks on errors during persistence write. 5 years ago
Roger A. Light 32ed4809ed Build fix for NetBSD.
Thanks to Greg Troxel.
5 years ago
Roger Light 60dc8f5e4c Fix service path quoting on Windows.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=565671
5 years ago
Roger Light 3eb60e2e6a Fix some winsock argument types. 5 years ago
Roger A. Light 43df213ecb Merge branch 'improve-client-store' of git://github.com/dbeinder/mosquitto into dbeinder-improve-client-store 5 years ago
david-beinder 212fd8635f Store username and listener of persistent clients
Signed-off-by: david-beinder <david.beinder@mce.li>
5 years ago
Roger A. Light 94d04136f8 Fix potential memory leaks.
Closes #1773. Closes #1774. Thanks to Yingpei Zeng.
5 years ago
Roger A. Light 618cd7006b Don't try to start DLT logging if DLT unavailable.
This is to avoid a long delay when shutting down the broker.

Closes #1735. Thanks to Colin Law.
5 years ago
Roger A. Light 1f717873d6 Log protocol error message where appropriate from a bad UNSUBSCRIBE
Rather than the generic "socket error".

Related to #1765.
5 years ago
Roger A. Light 2b1a22776b Only call setvbuf on open files. 5 years ago
Roger A. Light 54f3b686dc Fix "slow" file based logging by switching to line based buffering.
Closes #1689. Closes #1741. Thanks to Brett M. Gordon and tt92.
5 years ago
Roger A. Light 8234d24b1b Fix websockets clients sometimes not being disconnected promptly.
Closes #1718. Thanks to Luca Casonato.
5 years ago
Roger A. Light b4e0dfa598 Fix `autosave_interval` not being triggered by messages being delivered.
Closes #1726. Thanks to nduhme.
5 years ago
Roger A. Light 4e0312c55f Fix messages being queued for disconnected bridges
This occurred incorrectly when clean start was set to true.

Closes #1729. Thanks to Andreyooo.
5 years ago
Roger A. Light 1d66d3e443 Fix bridge topic remapping when using "" as the topic.
Closes #1749. Thanks to cieslarchristian.
5 years ago
Roger A. Light 5a56f066a8 Change systemd unit files to create /var/log/mosquitto
This happens before starting the broker.

Also don't quit with an error if opening the log file isn't possible.

Closes #821.
5 years ago
Roger A. Light abb31ffe8d Fix broker refusing to start if only websockets listeners were defined.
Closes #1740. Thanks to OkenKhuman.
5 years ago
Sigmund Vik 5481575f8b Fix FormatMessage warnings for Windows.
From the FormatMessage() Win32 API documentation: "The lpBuffer
parameter is a pointer to an LPTSTR; you must cast the pointer
to an LPTSTR (for example, (LPTSTR)&lpBuffer)."

https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-formatmessage#parameters

This commit fixes warnings like these:
warning C4047: 'function': 'LPSTR' differs in levels of indirection from 'char **'
warning C4024: 'FormatMessageA': different types for formal and actual parameter 5

Signed-off-by: Sigmund Vik <sigmund_vik@yahoo.com>
5 years ago
Sigmund Vik a75d574870 Fix sys_tree macro stubs with no arguments.
This fixes Visual Studio compiler warnings like this one:
"warning C4003: not enough arguments for function-like
macro invocation 'G_MSGS_DROPPED_INC'"

Signed-off-by: Sigmund Vik <sigmund_vik@yahoo.com>
5 years ago
Sigmund Vik 20972a2819 Add broker ready message.
Before this commit there was no good way to detect that the
Mosquitto broker was done with its startup phase on systems
without systemd.

On such systems it was tricky to e.g. start the broker from
a test where ports are dynamically assigned and one have to
deal with potential port conflicts.  Without a way to know
that the broker is done with its startup phase, there was no
way to know if the broker was able to acquire the port (for
both IPv4 and IPv6) without waiting for some unknown period
of time (when many tests are run in parallel a single process
might be starved for resources).

With this new broker ready message it is easy for the parent
process to monitor the broker output and figure out when the
port was successfully acquired.

Signed-off-by: Sigmund Vik <sigmund_vik@yahoo.com>
5 years ago
Jasper Lievisse Adriaanse 2758401829 only link with libm on OpenBSD
fixes "ld: error: unable to find library -ldl"

Signed-off-by: Jasper Lievisse Adriaanse <jasper@humppa.nl>
5 years ago
Roger A. Light 4b541ad5ca Fix usage message not mentioning v5.0.
Closes #1713. Thanks to whnr.
5 years ago
Roger A. Light 6bd435d721 Fix possible assert crash associated with bridge reconnecting.
This only occurs when compiled without epoll support.

Closes #1700. Thanks to Matthias Urlichs.
5 years ago
Roger A. Light eae8c9aab4 Fix check when loading persistence file of a different version
Closes #1684. Thanks to grekhss.
5 years ago
Roger A. Light 762ad432e8 Fix support for openssl 3.0 5 years ago
Roger A. Light bfc82ea91a Fix incorrect check. 5 years ago
Roger A. Light 4960fc0702 Don't disconnect clients that are already disconnected.
This prevents the session expiry being extended on SIGHUP.

Closes #1521. Thanks to Christoph Krey.
5 years ago
Roger A. Light eeaafed485 Fix memory leak when connecting clients rejected. 5 years ago
Roger A. Light 5908585afd Fix mosquitto_passwd -b not updating passwords for existing users
Closes #1664. Thanks to Leon Kiefer.
6 years ago
Roger A. Light 3758e0c328 Fix mosquitto_passwd not being able to create pwfile with -b. 6 years ago
Roger A. Light de25ff694e Report invalid bridge prefix+pattern combinations at config parsing time
Rather than letting the bridge fail later.

Issue #1635. Thanks to pokerazor.
6 years ago
Roger A. Light 4ab0f4bd39 Fix bundled deps option not being propagated to library.
Issue #1641.
6 years ago
Michael 24e34434a4 Move SSL prepare and accept operations out of deep loop
Since all resources are ready, do not need lookup again.

Signed-off-by: Michael Liu <michael.liu.point@gmail.com>
6 years ago
Michael Liu 7953649b1c Fix potential memory leak.
WebSocket context may lost since db->ll_for_free = NULL; operation on the bottom of context__free_disused() function.

Signed-off-by: Michael Liu <michael.liu.point@gmail.com>
6 years ago
Roger A. Light c84d175b3d Fixes for the poor souls stuck on <c99.
Closes #1622.
6 years ago
Roger A. Light c175e836a7 Print openssl error when unable to load server key. 6 years ago
Roger A. Light b0a065f790 Update changelog. Release page. Bump copyright. 6 years ago
Roger A. Light 0c68c20d2b Fix `mosquitto_client_protocol()` returning incorrect values. 6 years ago
Roger A. Light db02c9162d Add plugin that prints out calls, to help debugging. 6 years ago
Roger A. Light 032af6bf69 Add missing header 6 years ago
Roger A. Light c4e41f3444 Back port db_dump from develop.
Closes #1519. Thanks to Christoph Krey.
6 years ago
Roger A. Light 2a8c1d03f5 Merge branch 'coverity-fixes' into fixes 6 years ago
Gianfranco Costamagna 078ad752cd cmake: add ADNS enable/disable dynamic support
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
6 years ago
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>
6 years ago
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.
6 years ago
Roger A. Light 27b4518d7e Improve password file parsing in the broker and mosqitto_passwd.
Closes #1584. Thanks to panava.
6 years ago
Roger A. Light ed5db1bd6b Fix `bind_interface` not working for the default listener.
Closes #1533. Thanks to Markus Gothe.
6 years ago
Roger A. Light e188a6b500 More whitespace trimming fixes/consolidation. 6 years ago