Commit Graph

211 Commits

Author SHA1 Message Date
Roger A. Light
a47da31679 Update changelog, improve warning message from last commit. 2019-05-10 07:25:49 +01:00
Till Zimmermann
8518d08ff3 Fixed Segmentation Fault / NULLptr dereference
Signed-off-by: Till Zimmermann <tzimmermann@uni-osnabrueck.de>
2019-05-09 13:08:19 +02:00
Roger A. Light
203949a512 Fix -L url parsing.
Closes #1248. Thanks to Andrew J Freyer.
2019-04-30 13:24:33 +01:00
Roger A. Light
439575475c Use CMAKE_INSTALL_* variables when installing in CMake.
Closes #1049. Thanks to Greg Troxel.
2019-04-26 17:07:05 +01:00
Roger A. Light
3b4a5419c3 Build fixes around CFLAGS et al.
- Split CFLAGS and CPPFLAGS, and LDFLAGS and LDADD/LIBADD.
- test/unit now respects CPPFLAGS and LDFLAGS.

Closes #1232. Thanks to Greg Troxel.
2019-04-26 17:06:54 +01:00
Roger A. Light
5c0c830229 Fix compilation on musl C systems due to missing sys/time.h header.
Thanks to maxice8.
2019-04-25 21:22:51 +01:00
Roger A. Light
4dcd977932 Windows build fixes. 2019-04-17 20:09:59 +01:00
Roger A. Light
6438ce861e Minor build variant fixes. 2019-04-17 11:00:54 +01:00
Roger A. Light
810940dd5d Fix mosquitto_rr cmake build. 2019-04-17 10:39:51 +01:00
Roger A. Light
cba3380b98 Fix mosquitto_sub encoding of special characters with %j format.
Thanks to Ben Barbour.

Closes #1220.
2019-04-11 21:05:47 +01:00
Roger A. Light
cd8f12f68a Improve some client error messages. 2019-04-11 19:34:01 +01:00
Roger A. Light
54be8d0a46 Fix rr static build. 2019-04-11 19:34:01 +01:00
Roger A. Light
4995436b5a Add --repeat and --repeat-delay to mosquitto_pub. 2019-04-11 19:13:59 +01:00
Roger A. Light
dec769ce33 Client and doc ALPN additions
Add ALPN support for all clients, update documentation, and add to ChangeLog.
2019-04-11 11:52:34 +01:00
Roger A. Light
e4d0d52b01 Fix Coverity Scan 1400483-1400485.
Logically dead code.
2019-04-05 22:02:11 +01:00
Roger A. Light
925debb8a5 Add mosquitto_rr, the "request-response" client. 2019-04-01 22:31:05 +01:00
Roger A. Light
b95a5d87d2 Alphabetic client option order. 2019-03-30 21:18:30 +00:00
Roger A. Light
ec3fd361be https links where possible. 2019-03-30 20:34:40 +00:00
Roger A. Light
320ddc1303 Merge branch 'master'
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	client/Makefile
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.h
	lib/mqtt3_protocol.h
	lib/util_mosq.c
	set-version.sh
	snap/snapcraft.yaml
	src/bridge.c
	src/database.c
	src/handle_connack.c
	src/loop.c
	src/persist.c
	test/broker/Makefile
2019-03-16 10:05:38 +00:00
Roger A. Light
2dd24449ad Fix "unused parameter" warnings. 2019-03-13 14:46:05 +00:00
Roger A. Light
0941638143 Fix signed/unsigned comparion warnings.
Closes #1196.
2019-03-13 13:51:08 +00:00
Roger A. Light
754ac55151 Add warning to mosquitto_pub if publish rejected. 2019-03-13 11:24:14 +00:00
Roger A. Light
1ce1bce941 Add --remove-retained to mosquitto_sub
This can be used to clear retained messages on a broker.
2019-03-02 22:14:54 +00:00
Roger A. Light
ce31269e05 Update changelog, bump version, bump copyright year. 2019-02-28 16:56:15 +00:00
Roger A. Light
1924afe49e Add explicit support for TLS v1.3 and drop TLS v1.0. 2019-02-27 22:50:01 +00:00
Roger A. Light
deb2fdfc98 Use lib provided random id. Change lib generated id to alphanumeric only. 2019-02-27 14:53:07 +00:00
Roger A. Light
5aabc171b0 Merge branch 'mqtt5' into develop 2019-02-26 18:51:31 +00:00
Roger A. Light
e862a047a8 Rework TLS engine support. 2019-02-26 17:11:29 +00:00
Nicolás Pernas Maradei
20894fcbce Add engine private key password support
Some OpenSSL engines (selectable via tls_engine option) may require a
password to make use of private keys created with them in the first place.

The TPM engine for example, will require a password to access the underlying
TPM's Storage Root Key (SRK), which is the root key of a hierarchy of keys
associated with a TPM; it is generated within a TPM and is a non-migratable
key. Each owned TPM contains a SRK, generated by the TPM at the request
of the Owner. [1]

By default, the engine will prompt the user to introduce the SRK password
before any private keys created with the engine can be used. This could
be inconvenient when running on an unattended system.

Here's where the new tls_engine_kpass_sha option comes in handy. The user
can specify a SHA1 hash of its engine private key password via command
line or config file and it will be passed on to the engine directly.

This commit adds support for both clients (libmosquitto) and broker.

[1] https://goo.gl/qQoXBY

Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
2019-02-26 15:50:37 +00:00
Nicolás Pernas Maradei
f88cc06435 Add TLS engine and keyform support to libmosquitto
- Clients can now offload crypto tasks to an external crypto device through
  the OpenSSL ENGINE API.
- The keyfiles can now be treated as PEM or ENGINE keys.
- Two new functions were added to libmosquitto to set up the previously
  mentioned features.
- Both mosquitto_sub and mosquitto_pub include support to turn on the mentioned
  features through command line options.

Signed-off-by: Nicolás Pernas Maradei <nicopernas@gmail.com>
2019-02-26 15:48:00 +00:00
Roger A. Light
084062c85e Merge branch 'fixes' into mqtt5 2019-02-12 17:05:42 +00:00
Roger A. Light
9999faf9da Add rewritten build test script and remove some build warnings. 2019-02-12 13:24:54 +00:00
Roger A. Light
05458eb35d Fix some unused variable warnings. 2019-02-08 13:01:07 +00:00
Roger A. Light
a4f68869bf Fix cmake client build with TLS. 2019-02-08 13:01:07 +00:00
Roger A. Light
70c4097b6f Fix comparison of boolean values in CMake build.
Closes #1101. Thanks to Mojca Miklavec and Andrew L. Moore.
2019-02-08 13:01:07 +00:00
Roger A. Light
4a2e569171 -V now accepts 5, 311, 31, as well as mqttv5` etc. 2019-01-09 18:06:20 +00:00
Roger A. Light
326292681a Add maximum-qos support to broker and client.
This comes in the form of:

* Per listener maximum_qos option, which can be in the range 0-2.
* Changes to mosquitto_publish*() to return MOSQ_ERR_QOS_NOT_SUPPORTED
  if attempting to publish with a higher QoS than supported.
* Bridges will downgrade messages to match the maximum QoS.

More tests on the broker side (specifically bridges) are required. This
needs bridge support for MQTT 5 first.
2019-01-09 18:03:01 +00:00
Roger Light
930a314caf Add reason_code to on_publish_v5 callback. 2019-01-09 17:06:43 +00:00
Roger Light
1f9383d59a Helper test scripts for client properties. 2019-01-08 14:34:35 +00:00
Roger Light
0546e7bebc Add mosquitto_int_option and mosquitto_void_option
This deprecates mosquitto_opts_set().
2019-01-08 14:21:02 +00:00
Roger A. Light
2f54b16544 Fix mosquitto_pub not always sending everything with -l and QoS>0. 2019-01-08 14:19:50 +00:00
Roger A. Light
7c3666d593 Subscription identifier support. 2018-12-20 15:32:43 +00:00
Roger A. Light
fcf4cd0b27 Merge branch 'master' into mqtt5 2018-12-19 14:11:11 +00:00
Roger A. Light
db7901884f Retain-as-published support. 2018-12-14 13:36:02 +00:00
Roger A. Light
a00dd29af8 Fix building where TLS-PSK is not available.
Closes #68.
2018-12-11 10:55:31 +00:00
Roger A. Light
5073d83bf8 Don't generate client ids in v5 mode. 2018-12-05 21:26:22 +00:00
Roger A. Light
34293d07c1 Always print leading zeros in mosquitto_sub when output format is hex.
Closes #1066.

Thanks to skiizo.

Bug: https://github.com/eclipse/mosquitto/issues/1066
2018-12-04 09:24:04 +00:00
Roger A. Light
0123ff1efe Rename *_with_properties() -> *_v5(). 2018-11-22 18:55:04 +00:00
Roger Light
a9d19d0911 Use MQTT 5 reason strings where appropriate in clients. 2018-11-22 18:22:31 +00:00
Roger Light
36e8659762 Only keep reading from stdin if we are connected. 2018-11-22 18:14:12 +00:00
Roger Light
47129e395e Use v5 callback in pub client. 2018-11-22 17:34:42 +00:00
Roger Light
3cb8a52ef3 Add reason code to mosquitto_disconnect_with_properties() 2018-11-22 16:56:17 +00:00
Roger A. Light
85d9cfa2fa Fix pub client stdin mode. 2018-11-22 14:43:35 +00:00
Roger A. Light
dd158ffeb3 Split common publish code into separate file. 2018-11-22 09:02:27 +00:00
Roger A. Light
098a1c8ecf Fix subscribe_multiple datatypes. 2018-11-13 14:05:03 +00:00
Roger A. Light
beb96c6b8b Merge branch 'master' into develop 2018-11-11 21:41:44 +00:00
Roger A. Light
ba67e1ffe5 Don't use gnu-specific strerror_r. 2018-11-07 18:27:15 +00:00
Bartosz Taczała
e86b27a2da Adding support for QNX7.0.0
Change-Id: Id01e2880aa5cadc0e93a46b95fe675e1938051fa
Signed-off-by: Bartosz Taczała <bartosz.taczala@mobica.com>
2018-11-06 23:11:09 +00:00
Roger A. Light
f9e0fa246a Validate properties coming into client library. 2018-11-01 18:53:06 +00:00
Roger A. Light
4c0c632dfa Client memory "leak" fixes. 2018-11-01 16:02:20 +00:00
Roger A. Light
8aa936936e Library and client support for topic-alias. 2018-11-01 15:47:21 +00:00
Roger A. Light
55b46037da Change -y to -D in clients. 2018-11-01 14:22:00 +00:00
Roger A. Light
de3a9af1f7 Client+library support for unsubscribe properties. 2018-11-01 14:12:52 +00:00
Roger A. Light
49a8642986 Disallow properties that are invalid for a command. 2018-11-01 11:59:59 +00:00
Roger A. Light
741a8a9cc3 Client disconnect property support, plus disconnect packet fix. 2018-11-01 11:57:47 +00:00
Roger A. Light
383608613a Client+lib will property support. 2018-11-01 11:37:57 +00:00
Roger A. Light
12cba75c73 Client support for adding properties. 2018-10-31 12:38:39 +00:00
majekw
7f1419e4de Fix mosquitto_pub -l if compiled using cmake.
Since dde005ef92 mosquito_pub is throwing error
that 'threading support has not been compiled' when compiled using cmake.
It looks like WITH_THREADING flag is not set at top level Makefile and used
only in lib/ directory, so library is correctly compiled with threading.
But for client this flag is undefined, so it gives error on '-l' option.

This commit moves part related to WITH_THREADING flag out of lib/CMakeLists.txt
to top levele CMakeLists.txt, so it could be accessible to all subdirectories.

Signed-off-by: Marek Wodzinski <majek@w7i.pl>
2018-10-23 18:56:00 +01:00
Roger A. Light
35dea07dcd Merge branch 'master' 2018-10-23 10:39:20 +01:00
Roger A. Light
e5eb03b2e6 Allow building without shared library. 2018-10-07 00:56:42 +01:00
Roger A. Light
abb3fee1f8 Coverage reporting for whole broker. 2018-10-06 21:56:48 +01:00
Roger A. Light
366744bad7 Fix subscribe_multiple datatypes. 2018-10-04 09:46:51 +01:00
Roger Light
6c9e8d51c2 Merge branch 'develop' into mqtt5 2018-10-02 11:28:03 +01:00
Roger A. Light
1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
2018-10-02 08:31:54 +01:00
Roger A. Light
0e76bed50e Add -E option to mosquitto_sub.
This causes the client to exit immediately after its subscriptions are
acknowledged by the broker, and can be used to create a durable client
session without requiring messages to be delivered.

Closes #952.
2018-09-27 22:21:42 +01:00
Roger A. Light
33a523eea9 Add identifiers for v5.
Clients know about v5, just need library support...
2018-09-19 10:59:41 +01:00
Roger A. Light
88765a5e80 Consistent use of config.h across the project. 2018-08-16 11:14:51 +01:00
Roger A. Light
dde005ef92 Return error in mosquitto_pub -l if compiled without threading. 2018-08-16 11:06:58 +01:00
Roger A. Light
e240a692a7 Fix compiling on Mac OS X <10.12 due to clock_gettime()
Closes #813 and #240.

Signed-off-by: Roger A. Light <roger@atchoo.org>
2018-08-15 14:54:07 +01:00
Roger A. Light
3d3b7fc46f Fix default port problem when compiling clients using WITH_TLS=no. 2018-08-15 14:34:56 +01:00
Roger A. Light
3c517e617c Fix static mosquitto_sub compiling. 2018-05-01 21:34:28 +01:00
Roger A. Light
9852f94ee0 Merge branch 'sub_client_timeout_upstream' of git://github.com/I2SE/mosquitto into I2SE-sub_client_timeout_upstream 2018-04-12 00:20:02 +01:00
Tifaifai Maupiti
4fc90248c5 Fix _POSIX_C_SOURCE : 199309L to 200809L
Signed-off-by: Tifaifai Maupiti <tifaifai.maupiti@gmail.com>
2018-04-11 23:37:15 +01:00
Roger A. Light
f4d238be18 Bump copyright years. 2018-04-11 15:24:29 +01:00
Roger A. Light
86ced4d98f Add mosquitto_connect_with_flags_callback_set().
This allows a second connect callback to be used that exposes the
MQTT connect flags parameter.

Closes #738, #128.
2018-04-11 14:06:16 +01:00
Roger A. Light
40e6a75709 Use c99 as compiling standard.
Closes: #765.
2018-04-06 00:33:22 +01:00
Roger A. Light
8a22b918c0 Fix Coverity Scan defects. 2018-03-26 22:47:46 +01:00
Roger A. Light
d55da837aa Add %X for upper case hex printing. 2018-03-15 11:27:17 +00:00
Roger A. Light
17029c1e11 Minor usage string updates. 2018-03-15 11:25:18 +00:00
Roger A. Light
5cdfe3239c Separate sub client output code into its own file. 2018-03-15 11:21:42 +00:00
Roger A. Light
611ad222bb Don't keep trying to connect in sub client if CONNACK negative. 2018-03-15 11:13:17 +00:00
Roger A. Light
81cb7ab547 Merge branch 'fixes' into develop 2018-02-13 14:16:47 +00:00
Roger A. Light
15486f48e7 [636] Correctly handle empty files with "mosquitto_pub -l".
Thanks to Aleksandr Makarov.

Bug: https://github.com/eclipse/mosquitto/issues/676
2018-01-22 17:52:56 +00:00
Michael Heimpold
338322fa9c sub_client: allow to specify a timeout (refs #275)
This add a new command line parameter to give a timeout for message
processing. It is implemented using alarm(2) and thus available at
the moment only for POSIX platforms (also because I have no WIN32
build environment at hand).

Signed-off-by: Michael Heimpold <michael.heimpold@i2se.com>
2018-01-12 14:59:53 +01:00
Roger A. Light
9c6a5f3cf0 [656] Fix building on Windows.
Thanks to Arun Kirthi Cherian.

Bug: https://github.com/eclipse/mosquitto/issues/656
2018-01-06 22:42:40 +00:00
Michael Heimpold
48dec391f7 Quote ${DESTDIR} usage in various Makefiles
This prevents failures during make install when whitespace
is part of DESTDIR pathname.

Signed-off-by: Michael Heimpold <michael.heimpold@i2se.com>
2017-12-01 22:28:26 +00:00
Roger A. Light
712cbfe599 Default to mqtt v3.1.1 for clients. 2017-08-09 23:59:08 +01:00
Roger A. Light
59f11aa094 Improve static client building. 2017-07-17 20:47:57 +01:00
Roger A. Light
ef7a7850ac Add -c to mosquitto_pub. 2017-07-17 20:43:06 +01:00
Roger A. Light
e74203de2c Merge branch 'master' into develop 2017-07-16 22:52:01 +01:00