Roger A. Light
43b3184492
Rename to indicate these are public functions.
2020-09-18 21:29:42 +01:00
Roger A. Light
2f89203c67
Always ensure the client is in the hash before deleting.
2020-09-17 13:26:31 +01:00
Roger A. Light
7ad1ec819c
Cleanup bridge ssl_ctx on exit.
2020-09-17 12:45:57 +01:00
Roger A. Light
a57e41beff
Fix use after free (develop branch only).
2020-09-17 11:55:53 +01:00
Roger A. Light
20feb10366
Fix leak on malformed v5 subscribe.
2020-09-17 11:44:22 +01:00
Roger A. Light
97bd527df0
Breaking: allow_anonymous defaults to false.
2020-09-17 11:29:32 +01:00
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