Commit Graph

2039 Commits

Author SHA1 Message Date
Roger A. Light
d7d3087b04 Breaking: Bind to loopback if no listeners are configured. 2020-09-17 11:10:40 +01:00
Roger A. Light
1b269270bc Sort failed tests when reporting. 2020-09-16 14:45:28 +01:00
Roger A. Light
4372a2b925 Default test timeout of 60s by default is too long. 2020-09-16 14:45:22 +01:00
Roger A. Light
f87ef68fae Detect closed socket in tests. 2020-09-16 14:32:23 +01:00
Roger A. Light
56ba1b99db Add mosquitto_ssl_get().
This allow clients to access their SSL structure and
perform additional verification.
2020-09-10 15:50:47 +01:00
Roger A. Light
e2123b2561 Add --version for all clients. 2020-09-10 15:49:08 +01:00
Roger A. Light
5daa5ee162 Add support for $CONTROL/ topics in plugins. 2020-09-10 15:32:47 +01:00
Roger A. Light
cd33670f6a Fix build with WITH_CJSON=no 2020-09-08 12:26:55 +01:00
Roger A. Light
748e5f69c8 Fix acl-access-variants test. 2020-09-07 16:11:18 +01:00
Roger A. Light
f0862e26ec Add mosquitto_kick_client_by_clientid() and mosquitto_kick_client_by_username()
These can be used by plugins to disconnect clients.
2020-09-07 13:51:44 +01:00
Roger A. Light
3f1515e337 Fix missing argument. 2020-09-05 23:16:21 +01:00
Roger A. Light
bb5456729d Move keepalive check code to separate file.
This is in preparation for changing to a tree based implementation.
2020-09-05 22:59:50 +01:00
Roger A. Light
961ffcb2ae Remove redundant keepalive check.
Websockets clients are now part of the by_sock hashtable, so this isn't
needed.
2020-09-05 21:18:45 +01:00
Roger A. Light
219f2c20d2 Ensure all websockets outgoing buffer is used. 2020-09-02 22:24:29 +01:00
Roger A. Light
bab8cc2a6b mosquitto_sub now supports extra format specifiers.
These are for field width and precision for some parameters.
2020-08-28 22:23:22 +01:00
Roger A. Light
18e79eac22 Use hash_find rather than hash_iter for unpwd check. 2020-08-18 15:34:57 +01:00
Roger A. Light
b66ffb8039 Move unpwd to security_options struct. 2020-08-18 15:20:48 +01:00
Roger A. Light
581e843131 Move keepalive check to its own function. 2020-08-18 08:40:33 +01:00
Roger A. Light
cae55aa381 Make correct allow_anonymous check in pwfile security.
We always get passed the client even if it doesn't have a
username/password now.
2020-08-18 08:32:21 +01:00
Roger A. Light
a5f02f31fc Json helper functions. 2020-08-17 23:03:38 +01:00
Roger A. Light
b91e78318d Don't always iterate over entire inflight messages list
If we have e.g. max_inflight_messages set to 1000, and currently have 999 messages inflight, then when we send a new message to a client we have to iterate over the whole list to get to the newest message. This change means that we start of the back of the list to find the newest items, which reduces overhead.
2020-08-17 23:03:25 +01:00
Roger Light
58aa41c813 Optimise use of db__message_write()
New messages are now queued for clients when old ones are sent, rather than on every iteration of the main loop. This produces good performance improvements.
2020-08-12 15:29:08 +01:00
Roger A. Light
69f84bbca9 Simplify "expect_packet" tests. 2020-08-12 15:18:18 +01:00
Roger A. Light
ba2c00137d Fix client test leaks. 2020-08-12 15:18:17 +01:00
Roger A. Light
2dc8d2a19a Allow plugins to send messages to specific clients. 2020-08-12 15:18:17 +01:00
Roger A. Light
c94e111d73 expect_packet now raises an exception
This should allow tests to be simpler - no more nested ifs.
2020-08-12 15:18:17 +01:00
Roger A. Light
e56b953abd Free memory after sending queued plugin message. 2020-08-12 15:18:17 +01:00
Roger A. Light
a913a05fbd Documentation and error checking. 2020-08-12 15:18:17 +01:00
Roger A. Light
d6f4f4e0bc Add mosquitto_broker_publish_copy()
Rename mosquitto_plugin_publish() to mosquitto_broker_publish().

These two functions achieve the same thing. *_publish() publishes the payload and frees it later. *_publish_copy() takes a copy of the payload, so the plugin still owns the memory it passed to the function.
2020-08-12 15:18:17 +01:00
Roger A. Light
de5a820fe2 Start of dynamic control topics. 2020-08-12 15:18:17 +01:00
Roger A. Light
e414d92eb6 Merge branch 'abiliojr-lazy_ssl' into develop 2020-08-07 17:01:53 +01:00
Roger A. Light
f180e923ef Merge branch 'lazy_ssl' of git://github.com/abiliojr/mosquitto into abiliojr-lazy_ssl 2020-08-07 16:42:30 +01:00
Roger A. Light
7cb72cf1ba Fix incorrect NULL check.
Coverity Scan 1431137.
2020-08-06 13:50:52 +01:00
Roger A. Light
94b39d12ac Fix potential NULL dereference.
Coverity Scan 1431139.
2020-08-06 13:47:41 +01:00
Roger A. Light
9b5112f547 Fix unsigned compared against 0.
Coverity Scan 1431132.
2020-08-06 13:43:57 +01:00
Roger A. Light
872222c3c9 Remove unused values.
Coverity Scan 1431134, 1431136, 1431140.
2020-08-06 13:42:35 +01:00
Roger A. Light
1b060bb064 Guard against use-after-free.
Coverity Scan 1431131, 1431135, 1431141.
2020-08-06 13:36:24 +01:00
Roger A. Light
84e4ba2c1e Send DISCONNECT with malformed-packet reason code on bad PUBLISHes. 2020-08-02 23:12:47 +01:00
Roger A. Light
b1e9377a20 Send DISCONNECT with malformed-packet reason code on bad SUBSCRIBEs. 2020-08-02 15:10:12 +01:00
Roger A. Light
8416b007ec Send DISCONNECT with malformed-packet reason code on bad UNSUBSCRIBEs. 2020-08-02 14:22:40 +01:00
Abilio Marques
d5aae3eca7 lazy init SSL
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2020-07-23 17:48:56 +02:00
Simon Tate
1608151569 Fix bridge reconnect
In the mux_epoll__add_in function, no context->events was set. Previously this was set to match the ev.events (EPOLLIN). Adding this back in, keeps the code consistent to before it was refactored to split out epoll and poll functions, as well as being consistent with the other mux_epoll__ functions.

If this is not set, the connection is never fully established when the broker comes back up.

Fixes #1680.

Signed-off-by: Simon Tate <simon.tate@bt.com>
2020-07-20 15:47:48 +01:00
Roger A. Light
3dd3ac4f0c Path fix for travis. 2020-07-16 16:19:33 +01:00
Roger A. Light
34db6e77b4 cJSON make install doesn't build, so build it first. 2020-07-16 12:11:08 +01:00
Roger A. Light
86e7eed8b7 Fix minor leak when cleaning a bridge on exit. 2020-07-16 12:03:39 +01:00
Roger A. Light
0edb3e49e7 Remove debug mode 2020-07-16 11:23:25 +01:00
Roger A. Light
4f9a1a53ce Fix incorrect store ref count usage. 2020-07-16 11:18:04 +01:00
Roger A. Light
b5be4fb4af Fix test 2020-07-16 09:36:42 +01:00
Roger A. Light
f846711ea2 mosquitto_pub now sends 0 length files without an error when using -f. 2020-07-15 12:03:15 +01:00
Roger A. Light
f46187d5e5 Add mosquitto_client_protocol_version() function.
This can be used by plugins to determine which version of MQTT a client
has connected with.
2020-07-12 23:01:20 +01:00