Commit Graph

279 Commits

Author SHA1 Message Date
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
124ee1af91 [490] Further fix for auth related crashes.
Bug: https://github.com/eclipse/mosquitto/issues/490
2017-07-27 14:56:10 +01:00
Roger A. Light
22063013be [490] Fix auth plugin+WS client+MOSQ_ERR_AUTH related crash.
Thanks to "hasunperera".

Bug: https://github.com/eclipse/mosquitto/issues/490
2017-07-27 00:12:32 +01:00
Roger A. Light
5a267368d7 Merge branch 'master' into develop 2017-07-19 00:15:42 +01:00
Aska.Wu
d40d7772d3 Fix the TLS handshake problem if PSK has leading zero
Incorrect psk will be provided by psk_server_callback() because leading zero
is skipped by BN_bn2bin() and BN_num_bytes().

Signed-off-by: Aska.Wu <askawu@gmail.com>
2017-07-18 21:52:29 +01:00
Roger A. Light
d8cc5bc4fe Merge branch 'fixes' of github.com:eclipse/mosquitto into fixes 2017-07-17 22:02:30 +01:00
Zard1096
5b73897f98 Fix iOS crash issues
Relate to issues #327 and #63.
mosq->sock may be closed before FD_SET(mosq->sock, &writefds) and
FD_ISSET(mosq->sock, &writefds) but after judgement in line 947
if(mosq->sock != INVALID_SOCKET). FD_SET(-1, ...) and FD_ISSET(-1, ...)
would certainly crash.

Signed-off-by: Zard1096 <mr.zardqi@gmail.com>
2017-07-16 23:22:13 +01:00
Roger A. Light
e74203de2c Merge branch 'master' into develop 2017-07-16 22:52:01 +01:00
Roger A. Light
1fa4d74278 Bump version number. 2017-07-10 23:44:16 +01:00
Roger A. Light
6b351ce0f1 Bump version number. 2017-06-27 22:14:08 +01:00
Roger A. Light
2d90a1f45b Fix umask value. 2017-06-27 11:21:34 +01:00
Roger A. Light
94978ac89b Restore old umask after creating file. 2017-06-27 10:53:06 +01:00
Roger A. Light
6e7d02ba16 Fix for CVE-2017-9868 for Windows. 2017-06-26 14:53:33 +01:00
Roger A. Light
326983d35e [417] Fix lazy bridges not timing out for idle_timeout.
Thanks to spinachmedia.

Bug: https://github.com/eclipse/mosquitto/issues/417
2017-06-19 17:15:00 +01:00
Roger A. Light
c07ba2a3da Experimental fix for poor websockets performance. 2017-06-18 12:52:59 +01:00
Jan Lukavsky
621f18d696 #419 Broker sometimes kills connection to client
Signed-off-by: Jan Lukavsky <je.ik@seznam.cz>
2017-06-11 22:00:45 +01:00
Roger A. Light
b61fefcf08 Merge branch 'master' into develop 2017-05-31 21:05:26 +01:00
Roger A. Light
2897f71aba Bump version number. 2017-05-28 21:53:19 +01:00
Jelle van der Waa
ab266e7f5f lib: fix OpenSSL 1.1 deprecation warning for ERR_remove_state
ERR_remove_state has been marked deprecated in OpenSSL 1.1.0 and do
nothing, as the OpenSSL libraries now normally do all thread
initialization and deinitialisation automatically.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2017-05-05 22:49:05 +01:00
Roger A. Light
91b308a11d Merge branch 'master' into develop 2017-03-06 21:19:53 +00:00
Roger A. Light
ac981782db Fix typo and use net__print_ssl_error() as available. 2017-03-06 10:58:56 +00:00
Jiří Pinkava
cd0985c3e2 Log more TLS error details
Signed-off-by: Jiří Pinkava <j-pi@seznam.cz>
2017-03-06 10:56:45 +00:00
Roger A. Light
bda9893713 Version bump. 2017-02-20 23:48:30 +00:00
Roger A. Light
433ee5c4d6 [344] Don't compile in async dns support by default for makefiles. 2017-02-20 23:48:30 +00:00
Roger A. Light
6f45ab9624 [344] Only do async dns on glibc. 2017-02-20 23:48:30 +00:00
Roger A. Light
5eae4b56d6 [344] More leak fixes. 2017-02-20 23:48:30 +00:00
Roger A. Light
e0e8cc9f3e [344] Fix leaks and incorrect connect call. 2017-02-20 23:48:30 +00:00
Roger A. Light
e13af18ed9 Start of fix for [344]. 2017-02-20 23:48:30 +00:00
Fredrik Fornwall
35cc1eb21e Check for rt and pthread libraries before linking
This fixes building on Android which does not have separate librt
or libpthread libraries.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
2017-02-20 23:48:30 +00:00
Roger A. Light
b5b5e6f27d Don't use reserved identifiers in public headers. 2017-02-20 23:48:30 +00:00
Jens Breitbart
b9d4ebfba3 Fix compiler warnings (unused parameter, additional semicolon).
A modern version of the clang compiler complained about:
* unused parameters
* additional semicolon
. This commit fixes these warnings.

Signed-off-by: Jens Breitbart <jbreitbart@gmail.com>
2017-02-20 23:48:30 +00:00
Roger A. Light
8e4a80a928 [329] Fix potential negative timeout being passed to pselect.
Thanks to Dollars.

Bug: https://github.com/eclipse/mosquitto/issues/329
2017-02-20 23:48:30 +00:00
Teun Lassche
4dc96a2533 Fix #304 Socket leakage
Signed-off-by: Teun Lassche <contact@thlassche.nl>
2017-02-20 23:48:30 +00:00
Roger A. Light
98ea684906 [323] Allow outgoing IPv6 connections to use TLS.
Bug: https://github.com/eclipse/mosquitto/issues/323
2017-02-20 23:48:30 +00:00
Roger A. Light
9f32d5c0ac Version bump. 2017-02-20 21:57:45 +00:00
Roger A. Light
e4e81a0fb1 [111] Add mosquitto_userdata function to libmosquitto.
This allows retrieving mosq->userdata.

Bug: https://github.com/eclipse/mosquitto/issues/111
2017-02-19 20:45:52 +00:00
Roger A. Light
f0485d1398 [344] Don't compile in async dns support by default for makefiles. 2017-02-08 22:30:00 +00:00
Roger A. Light
3d40ffe18b [344] Only do async dns on glibc. 2017-02-08 15:40:44 +00:00
Roger A. Light
ee543a25f5 [344] More leak fixes. 2017-02-07 16:11:57 +00:00
Roger A. Light
f464970fcf [344] Fix leaks and incorrect connect call. 2017-02-06 23:10:43 +00:00
Roger A. Light
ef7a230365 Start of fix for [344]. 2017-02-06 22:41:34 +00:00
Fredrik Fornwall
532273250c Check for rt and pthread libraries before linking
This fixes building on Android which does not have separate librt
or libpthread libraries.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
2017-01-30 21:00:25 +00:00
Roger A. Light
ef417a6688 Don't use reserved identifiers in public headers. 2017-01-05 21:42:24 +00:00
Jens Breitbart
fbb60d67a7 Fix compiler warnings (unused parameter, additional semicolon).
A modern version of the clang compiler complained about:
* unused parameters
* additional semicolon
. This commit fixes these warnings.

Signed-off-by: Jens Breitbart <jbreitbart@gmail.com>
2016-12-10 20:02:19 +00:00
Roger A. Light
2c2ba2cf10 [329] Fix potential negative timeout being passed to pselect.
Thanks to Dollars.

Bug: https://github.com/eclipse/mosquitto/issues/329
2016-12-08 21:06:45 +00:00
Teun Lassche
dac29a5a5f Fix #304 Socket leakage
Signed-off-by: Teun Lassche <contact@thlassche.nl>
2016-12-04 22:00:53 +00:00
Roger A. Light
6f7a0bff4b [323] Allow outgoing IPv6 connections to use TLS.
Bug: https://github.com/eclipse/mosquitto/issues/323
2016-11-30 11:31:30 +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
Roger A. Light
87b6a746fd Bump version number. 2016-08-16 22:52:22 +01:00
Roger A. Light
79cc06b180 [237] Fix memory leak when verifying a server certificate.
Only for certificates with a subjectAltName. Closes #237.

Thanks to MrSaturday.

Bug: https://github.com/eclipse/mosquitto/issues/237
2016-08-08 21:49:32 +01:00
Roger A. Light
017db6706f Rename mosquitto_broker.h -> mosquitto_broker_internal.h 2016-07-08 10:10:04 +01:00
Roger A. Light
8378fe44cf Update copyrights. 2016-07-08 09:42:24 +01:00
jbwdevries
1c90a4487c Fixes a bug where the C++ wrapper would always claim SOCKS was not supported. (#198)
The WITH_* flags are not handed over to the C++ wrapper, instead it relies on
the actual library to check status.

Signed-off-by: Johan de Vries (Ubuntu VM) <devries@wivion.nl>
2016-06-29 17:12:20 +01:00
Roger A. Light
1c3988a397 Merge branch 'master' into develop 2016-06-21 23:33:58 +01:00
Roger A. Light
a8a5daf06b Check client topic inputs for valid UTF-8. 2016-06-20 22:56:01 +01:00
Roger A. Light
fa2d3143a4 Separate the C and C++ static libraries. 2016-06-15 21:11:46 +01:00
Roger A. Light
2286caaca2 Merge branch 'enhance-bare-makefile-static-library-build' of https://github.com/Lance0312/mosquitto into Lance0312-enhance-bare-makefile-static-library-build 2016-06-15 20:59:34 +01:00
Roger A. Light
d90cd585dd Add WITH_STRIP build option. 2016-06-13 21:36:41 +01:00
Roger A. Light
2d0af7309f Bump version number. 2016-06-02 21:32:21 +01:00
Roger A. Light
30686f2dc9 Fix mosquitto_topic_matches_sub(). 2016-06-02 20:53:09 +01:00
Lance Chen
5ccd0dbb80
Add an build option to control building static libraries or not
The option WITH_STATIC_LIBRARIES is default to yes

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-06-03 01:59:37 +08:00
Lance Chen
97847fa95b
Rename option BUILD_STATIC_LIBRARY to WITH_STATIC_LIBRARIES
to conform to the bare Makefiles

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-06-03 01:59:10 +08:00
Lance Chen
4b4817c3f0
Build the CPP static library with bare Makefiles
In order to make the CPP static library include all
objects from the C static library, the list of objects
(MOSQ_OBJS) is isolated into objects.mk to be used for
building the C and CPP static libraries.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-06-02 18:02:26 +08:00
Lance Chen
a9b7237d09
Install/Uninstall the C static library
Symbol stripping is done explicitly with strip command,
since stripping with install command removes too many
symbols, making the result library unusable.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-06-02 18:02:22 +08:00
Roger A. Light
c035913b2a [180] Fix #includes in lib/send_mosq.c
Ensures that LWS_LIBRARY_VERSION_NUMBER is always present in all source
files when it is defined.

Thanks to dennisip86.

Bug: https://github.com/eclipse/mosquitto/issues/180
2016-05-31 12:07:10 +01:00
Lance Chen
f18e8e12a8
Add build configuration for CPP static library
The CPP static library respects options
BUILD_STATIC_LIBRARY and WITH_PIC as well.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-05-31 17:03:52 +08:00
Lance Chen
aa360e4029
Add an option to control building static library with PIC or not
The option WITH_PIC is default to OFF.

By default, the static library is built from the
source code directly. If WITH_PIC is enabled, the
static library is built with the same set of
object libraries that the shared library uses.

To link Mosquitto static library into a shared
library, one must enable WITH_PIC to make the
piece of code locatable.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-05-31 17:03:52 +08:00
Lance Chen
7ee997e6cc
Add an option to control building static library or not
The BUILD_STATIC_LIBRARY option is default to ON.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-05-31 17:03:52 +08:00
Lance Chen
b87082c604
Fix fail linking of handle* functions in the shared library
The shared library fails to link to `handle*` functions
implementd in lib/handle_* because these source file
definitions seem to be removed accidentally in commit
3499c09.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
2016-05-31 14:53:48 +08:00
Roger A. Light
a187b3f5fa [57] Handle PUB* with unknown message id gracefully.
Allows message flow to complete where e.g. the broker didn't persist a
partially complete flow.

Thanks to jsaak jsaak and Hiram van Paassen.

Bug: https://github.com/eclipse/mosquitto/issues/57
2016-05-19 15:16:19 +01:00
Roger A. Light
e8185ddaa7 [166] Don't cancel external threads.
libmosquitto shouldn't cancel threads it didn't create. This change
allows us to keep track of whether threads were created by the library
or by external code.

Thanks to Josip Ćavar.

Bug: https://github.com/eclipse/mosquitto/issues/166
2016-05-18 14:05:08 +01:00
Roger A. Light
c6ef86bd1f Print openssl errors when debugging enabled. 2016-05-16 21:57:31 +01:00
Roger Light
dfeb2f9ba6 Merge pull request #141 from PierreF/large-queued-performance-2
Improve performance with lots of queued message
2016-05-15 22:31:35 +01:00
Dmitry Kaukov
606aa5b4fa Workaround for Windows SSL (#160)
Closes #154.

Signed-off-by: Dmitry Kaukov <dkaukov@opentable.com>
2016-05-14 21:45:02 +01:00
Ian Johnson
a0a0cc3076 Renaming STATIC_LIB -> LIBMOSQUITTO_STATIC
Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
2016-04-21 09:51:46 -05:00
Ian Johnson
3499c094dc Putting the list of files into a variable C_SRC and modiftying the add_library calls to use this variable
Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
2016-04-19 16:57:44 -05:00
Ian Johnson
93906b9dfd We don't want to add any declaration properties for the static library, as the static library doesn't export or import anything, so when STATIC_LIB is defined the libmosq_EXPORT defines to nothing
Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
2016-04-19 16:56:36 -05:00
Ian Johnson
13f28d1c1e Adding the static library target, libmosquitto_static, to CMakeLists.txt so it gets installed, and when compiled STATIC_LIB gets defined for only the static library
Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
2016-04-19 16:56:25 -05:00
Ian Johnson
87112a7e21 On Mac, we don't want to run /sbin/ldconfig as it doesn't exist
Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
2016-04-19 16:56:10 -05:00
Pierre Fersing
44f23252a0 Improve performance with lots of queued message
Split message queue in two queues: in-flight and queued to avoid the
need to iterate over all messages.

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2016-04-18 16:24:13 +02:00
Roger A. Light
caa394d0fe Return value of pthread_create is now checked. 2016-03-17 21:22:56 +00:00
Roger A. Light
69a08ab905 Fix string quoting in CMakeLists.txt. Closes #4. 2016-03-13 20:33:08 +00:00
Roger A. Light
556c629ab5 Don't use reserved names in header guards.
Closes #3.
2016-03-13 18:43:13 +00:00
Roger A. Light
db2e66c543 Reorganise functions into separate files as appropriate. 2016-03-12 21:49:48 +00:00
Roger A. Light
af995d211d Fix client library keepalive handling.
Fix the case where a message received just before the keepalive timer
expired would cause the client to miss the keepalive timer.

Thanks to Graham Benton.
2016-02-28 17:24:43 +00:00
Roger A. Light
5cca6b4239 Bump version number. 2016-02-14 14:10:52 +00:00
Roger A. Light
f6939d4cbb Merge branch 'develop' of ssh://git.eclipse.org:29418/mosquitto/org.eclipse.mosquitto into develop 2016-02-09 23:03:34 +00:00
Roger A. Light
d5abf5a18a Outgoing connections can use any TLS version. 2016-02-09 23:02:46 +00:00
Roger A. Light
fd6a6cac14 Only increment inflight msgs when limit not reached. 2016-02-09 23:01:31 +00:00
Roger A. Light
97e6ac22d8 Only increment inflight messages if the limit hasn't been reached. 2016-02-09 23:00:15 +00:00
Roger A. Light
26b015908e Default to using MQTT v3.1.1. 2016-02-05 21:22:42 +00:00
Roger A. Light
4e4c08aaf0 "retained" -> "want_retained". 2016-01-26 17:10:54 +00:00
Roger A. Light
7709621911 Reorder helper function arguments for consistency. 2016-01-26 17:06:32 +00:00
Roger A. Light
0a95c9a3af Add mosquitto_subscribe_callback(). 2016-01-26 17:00:08 +00:00
Roger A. Light
1288b14dcb Fixes and cleanup for subscribe_simple. 2016-01-26 09:55:32 +00:00
Roger A. Light
896b4563fb Add missing helpers code. 2016-01-26 09:26:17 +00:00
Roger A. Light
b83c58763d Add mosquitto_subscribe_single()/multiple(). 2016-01-25 23:12:33 +00:00
Roger A. Light
c7d4f4bcff mosq->want_write should be cleared immediately before a call to SSL_write.
This allows clients using mosquitto_want_write() to get accurate results.
2016-01-13 21:32:01 +00:00
Roger A. Light
fca9ac84f7 Merge fixes into develop. 2016-01-06 21:10:34 +00:00
Roger A. Light
a7136b3672 Bump version number. 2015-12-21 11:32:41 +00:00