Commit Graph

213 Commits

Author SHA1 Message Date
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
Roger A. Light
2549919413 Fix support for libwebsockets 1.22. 2015-12-21 11:32:02 +00:00
Roger A. Light
dc02e37af9 Bump version number. 2015-12-20 20:34:22 +00:00
Roger A. Light
7aa653c42f Add support for libwebsockets 1.6. 2015-12-19 01:21:17 +00:00
Roger A. Light
148df82144 [484693] Fix _mosquitto_socketpair() on Windows.
Thanks to Steve Woods and Roman Bogus.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=484693
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=479143
2015-12-18 22:09:36 +00:00
Roger A. Light
f58f8aac0f Document updates. 2015-11-16 16:47:12 +00:00
Roger A. Light
3cab5e2e69 Bump version number. 2015-11-08 21:25:04 +00:00
Roger A. Light
2078b6381a Log CONNACK result for clients. 2015-09-29 12:33:51 +01:00
Simon Wunderlich
c02cdbefdc mosquitto-lib: close socketpair on (re)connect
If the socket pair is still opened on reconnect, close it before
creating it again (just like the state variables). Otherwise, these
sockets are leaked on multiple mosquitto_connect() calls.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2015-09-22 17:10:26 +01:00
Roger A. Light
b4fbe904d4 Remove more unnecessary "if(x) mosquitto__free(x)" checks. 2015-09-22 14:42:56 +01:00
Roger A. Light
436d3fac19 Merge branch 'fixes' into develop
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.c
	lib/mosquitto.h
	src/loop.c
2015-09-22 14:18:12 +01:00
Roger A. Light
acb95f2f2e Fix potential memory leak in mosquitto_sub_topic_tokenise() 2015-09-22 14:04:09 +01:00
Roger A. Light
66924cd832 Windows 64 bit build and installer. 2015-09-22 13:48:36 +01:00
Roger A. Light
9a2eb2038f Drop Windows XP support, misc fixes on Windows. 2015-09-22 10:03:57 +01:00
Roger A. Light
720d52d86e Bump version number. 2015-09-16 22:53:28 +01:00
Roger A. Light
17e942e9b5 [475707] Fix free related crash on openwrt.
Thanks to Karl Palsson.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=475707
2015-09-16 21:20:40 +01:00
Roger Light
e2324ff9bb Merge remote-tracking branch 'remotes/origin/master' into develop
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	THANKS.txt
	appveyor.yml
	config.mk
	installer/mosquitto-cygwin.nsi
	installer/mosquitto.nsi
	lib/messages_mosq.c
	lib/messages_mosq.h
	lib/mosquitto.c
	lib/mosquitto.h
	lib/net_mosq.c
	lib/net_mosq.h
	lib/send_client_mosq.c
	lib/send_mosq.c
	lib/socks_mosq.c
	lib/will_mosq.c
	src/bridge.c
	src/conf.c
	src/context.c
	src/database.c
	src/loop.c
	src/mosquitto.c
	src/mosquitto_broker.h
	src/net.c
	src/read_handle.c
	src/read_handle_server.c
	src/subs.c
2015-09-09 22:02:46 +01:00
Roger A. Light
d71db835eb Bump version number. 2015-08-18 23:38:02 +01:00
Roger A. Light
3f86d316d8 Allow mosquitto__free(NULL).
Remove all unnecessary "if(X)" before a call to mosquitto__free.
2015-08-18 14:53:22 +01:00
Anmol Sarma
13d869b8df Avoid calls to strlen() when checking for empty strings.
Change-Id: I3de322006623483cbf20218da071a9da5d7b2e2b
Signed-off-by: Anmol Sarma <me@anmolsarma.in>
2015-08-17 16:00:16 -04:00
Roger A. Light
1254fe93e0 [474935] Increment inflight message count correctly.
Don't duplicate the increment when queueing.

Thanks to Joe McIlvain.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=474935
2015-08-17 20:50:41 +01:00
Roger A. Light
b87722556c Remove duplicate code. 2015-07-01 11:51:32 +01:00
Roger A. Light
5c642c9cfd [464543] Add defer support for plugins.
Partial fix for 464543.
2015-06-29 22:33:01 +01:00
Roger A. Light
a330c5ca17 [471334] Fix incorrect loop timeout with keepalive=0.
Fix incorrect loop timeout being chosen when using the threaded
interface and keepalive = 0.

Thanks to Gianfranco Costamagna.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=471334
2015-06-29 15:57:16 +01:00
Roger A. Light
dc5abcac95 [470660] Handle fragmented TLS packets without a delay.
Thanks to Martin Rauscher.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=470660
2015-06-25 10:53:24 +01:00
Roger A. Light
c1974e5402 Report error string on connection failure rather than error code. 2015-06-23 22:59:03 +01:00
Roger A. Light
cdbe62c2bb Outgoing messages with QoS>0 are no longer retried after a timeout.
This change in behaviour can be justified by considering when the
timeout may have occurred.

* If a connection is unreliable and has dropped, but without one end
  noticing, the messages will be retried on reconnection. Sending
  additional PUBLISH or PUBREL would not have changed anything.

* If a client is overloaded/unable to respond/has a slow connection then
  sending additional PUBLISH or PUBREL would not help the client catch
  up. Once the backlog has cleared the client will respond. If it is not
  able to catch up, sending additional duplicates would not help either.
2015-05-24 11:59:53 +01:00
Roger A. Light
290ea87828 Build fixes for OpenBSD. 2015-05-21 17:15:33 +01:00
Roger A. Light
4195fde70b Last raft of renames for the moment. 2015-05-18 09:29:22 +01:00
Roger A. Light
21946ace6c mosquitto__log_printf -> log__printf 2015-05-18 08:53:21 +01:00
Roger A. Light
389c971430 Remove logically dead code.
Coverity CID 1292477.
2015-05-17 07:05:46 +01:00
Roger A. Light
b67c90ec02 Rename internal datatypes. 2015-05-16 19:03:12 +01:00
Roger A. Light
3c703408f2 More function renaming. 2015-05-16 18:43:06 +01:00
Roger A. Light
94ef6ec7bb Big set of function renames. 2015-05-16 15:24:24 +01:00
Roger A. Light
a67d43c8d3 Rename message functions. 2015-05-16 14:29:54 +01:00
Roger A. Light
1744477cf8 Rename/reorganise packet functions. 2015-05-16 14:16:40 +01:00
Roger A. Light
8049c4b7f8 Simplify code around SYS statistics gathering. 2015-05-16 12:25:35 +01:00
Roger A. Light
b598aec385 Sys -> user includes. 2015-04-29 21:37:47 +01:00
Roger A. Light
970ba58da6 Code reorganise. 2015-04-29 21:23:59 +01:00
Roger A. Light
d7e3fdf7f7 Don't check set size on Windows.
socket is an opaque object on Windows, so this check isn't valid.
2015-04-29 10:40:19 +01:00
Roger A. Light
8de6b92e3c Fix calls to mosquitto_connect*_async() not completing. 2015-04-29 10:13:55 +01:00
Roger A. Light
11756d24c8 Change internal funcs _foo_bar() to foo__bar(). 2015-04-19 22:10:59 +01:00
Roger A. Light
e5010af4df [464632] Library: Fix possible crash due to select() call.
Fix possibility of select() being called with a socket that is >FD_SETSIZE.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=464632
2015-04-19 21:13:54 +01:00
Roger A. Light
e6f262bbbf Remove unnecessary includes. 2015-04-18 22:22:55 +01:00
Roger Light
322d9624a1 Fix CMake dependencies for libmosquittopp.
Enables parallel build mode.

Accepted without CLA after discussion with Eclipse Foundation legal
about very small patches that can only be implemented in one way.

See bug report for acceptance of Certificate of Origin.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=463884
Also-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
2015-04-17 21:51:14 +01:00
Roger A. Light
1fb7465b83 [464437] Broker: Fix bridge prefixes operation.
Fix bridge prefixes only working for the first outgoing message.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=464437
2015-04-11 11:43:21 +01:00
Roger A. Light
b24fd0a55c Bump version number for upcoming service release. 2015-04-11 11:35:32 +01:00
Roger A. Light
22fee31ba4 [464436] Library: Fix outgoing QoS 2 message problem.
Inflight message count wasn't being decreased for outgoing messages using
QoS 2, meaning that only up to 20 QoS 2 messages could be sent. This has
been fixed.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=464436
2015-04-11 11:32:33 +01:00
Roger A. Light
b8f9aeb1a8 Fix incorrect string termination. 2015-04-07 23:31:41 +01:00
Roger A. Light
133d2de144 Bump to development version. 2015-04-04 21:26:08 +01:00
Roger A. Light
46ccc2efe9 [463479] Make _mosquitto_mid_generate() thread safe.
Thanks to bdwalker.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=463479
2015-04-03 07:48:55 +01:00
Roger A. Light
fe933dee99 Don't require socks_mosq.c in cpp library. 2015-03-30 22:11:18 +01:00
Roger A. Light
dacee786be [463000] Use own type to simplify socket handling.
Means that SOCKET is used as the socket type everywhere on Windows.
2015-03-29 10:43:08 +01:00
Roger A. Light
3591f2d256 [462781] Allow longer paths on Windows.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=462781
2015-03-27 21:47:27 +00:00
Roger A. Light
c9a924e95e [462780] Fix crash on multiple calls to lib init/clean.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=462780
2015-03-27 21:02:49 +00:00
Roger A. Light
0434d1cd9b [461705] Return -1 on error from mosquitto_socket()
Thanks to Mikkel Kirkgaard Nielsen.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=461705
2015-03-27 01:40:41 +00:00
Roger A. Light
2aceb704b5 [463000] Fix reconnect bug on Windows.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=463000
2015-03-27 01:24:16 +00:00
Roger A. Light
35b729909c [463241] Fix possible crash under heavy network load.
Thanks to Alexandre Zia.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=463241
2015-03-27 01:07:48 +00:00
Roger A. Light
e310092f44 [461620] Inflight limits should only apply to outgoing messages.
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=461620
2015-03-08 22:06:20 +00:00
Roger A. Light
db86809ee9 Add websockets logging options. 2015-02-13 22:57:49 +00:00
Roger A. Light
6fd38b8c47 Windows fixes. 2015-02-13 21:18:52 +00:00
Roger A. Light
3ed5c94038 Struct optimisations. 2015-02-13 21:17:11 +00:00
Roger A. Light
1a14f6fed5 [453293] Don't quit loop_forever() if broker not available.
This is a workaround for bug #453293, a better solution is needed for
1.5.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=453293
2015-02-09 22:17:27 +00:00
Roger A. Light
c5ee5686bd Fix client CONNECT packet on MQTT v3.1.1. 2015-02-06 20:48:45 +00:00
Roger A. Light
39ffd6fa36 Handle "error" codes from SSL_connect() correctly. 2015-01-27 23:33:36 +00:00
Roger A. Light
b99dbc01d4 Must initialise protocol field. 2015-01-27 17:28:26 +00:00
Roger A. Light
8a35c3cd0d Add client support for MQTT v3.1.1. 2015-01-27 00:32:20 +00:00