Marek Wodzinski
ede9f2a51d
mosquitto_pub: split main loop.
...
Main loop has two different logics inside: one for stdin input,
second for all other cases. Exit loop condition is also different
for both variants. This commit splits these two variants into
two separate loops.
Signed-off-by: Marek Wodzinski <majek@w7i.pl>
2019-10-06 01:39:27 +02:00
Abilio Marques
fb8d03db28
mosquitto_sub exits if no subscription is granted
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2019-09-26 08:36:54 +02:00
Roger A. Light
54ed3c0fc9
Merge branch 'master' into develop
2019-09-25 19:09:10 +01:00
Roger A. Light
0a8358243b
mosquitto_sub: Fix -E
not working unless -d
was also specified.
...
Closes #1418 . Thanks to Lichard Torman.
2019-09-21 22:30:21 +01:00
Roger A. Light
c1e488cb88
Add timeout return code (27) for sub/rr using -W.
...
Closes #275 .
2019-09-04 14:29:26 +01:00
Roger A. Light
a0e7165a9c
Fix WITH_STATIC_LIBRARIES using CMake on Windows
...
Closes #1369 . Thanks to TimmvonderMehden
2019-08-06 12:01:29 +01:00
YangHau
b2aed5cb7e
feat: Remove unecessary if statement
...
free() would take no action if the arguement is a NULL pointer.
Therefore, the if statement is totally unnecessary.
See ISO-IEC 9899
Signed-off-by: YangHau <vulxj0j8j8@gmail.com>
2019-08-01 19:28:39 +08:00
Roger A. Light
a22ccbd884
Clients: improve error msgs when connecting v3.x broker with v5 client
...
Closes #1344 . Thanks to HowJMay.
2019-08-01 11:40:55 +01:00
Roger Light
1079a1b697
Merge pull request #1342 from HowJMay/remove_redundant_reset
...
Remove redundant initialization in clients
2019-08-01 09:59:52 +01:00
Roger A. Light
b807daed28
Fix error codes not being returned when mosquitto_pub exits.
...
Closes #1354 . Thanks to Ben Barbour.
2019-07-24 12:08:43 +01:00
YangHau
9bb9b6e721
Remove redundant initialization in clients
...
the `memset(&cfg, 0, sizeof(struct mosq_config));` already exsits in
`client_config_load()`'s `init_config()` function call.
So calling it in main function is totally unnecessary.
Signed-off-by: YangHau <vulxj0j8j8@gmail.com>
2019-07-12 16:53:29 +08:00
Roger A. Light
af7760f1b6
Fix build for WITH_SOCKS=no.
2019-06-13 16:23:55 +01:00
Roger A. Light
c685b7ecf4
Fix mosquitto_pub -l
not handling zero length input.
...
Closes #1302 . Thanks to Marcus Watkins.
2019-06-06 23:21:07 +01:00
Roger A. Light
31f448f35a
Fix MQTT v5 clients not being able to specify a password without a username.
...
Thanks to Erik Moqvist.
Closes #1274 .
2019-06-06 23:01:04 +01:00
Roger A. Light
4d54a51c62
Stop some error messages being printed even when --quiet
was used.
...
Thanks to Rob de Jonge.
Closes #1284 .
2019-06-06 22:58:02 +01:00
Roger A. Light
7d954fa52e
Fix mosquitto_pub -l
not handling network failures.
...
Closes #1152 . Thanks to Dustin Sallings.
2019-05-29 18:49:08 +01:00
Roger A. Light
1bafe0ee2e
Fix double free on exit in mosquitto_pub.
...
Closes #1280 . Thanks to Lucky Saini.
2019-05-29 18:42:38 +01:00
Roger A. Light
b4dfeb3767
Fix MQTT v5 clients not being able to specify a password without a username.
...
Thanks to Erik Moqvist.
Closes #1274 .
2019-05-21 23:56:22 +01:00
Roger A. Light
999c478c88
Fixes for bug #1273
...
* Fix Will message for a persistent client incorrectly being sent when the client reconnects after a clean disconnect.
* Fix Will message for a persistent client not being sent on disconnect.
* Fix mosquitto_pub not using the `-c` option.
Thanks to Yannic Schröder.
Closes #1273 .
2019-05-21 17:08:52 +01:00
Roger A. Light
29cf965b4f
Fix mosquitto_pub exiting with error code 0 when an error occurred.
...
Thanks to janniswarnat.
Closes #1285 .
2019-05-21 11:39:19 +01:00
Roger A. Light
7a33a129d6
Stop some error messages being printed even when --quiet
was used.
...
Thanks to Rob de Jonge.
Closes #1284 .
2019-05-21 11:23:00 +01:00
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