Commit Graph

155 Commits

Author SHA1 Message Date
Roger A. Light
108b23ce6d Reduce use of mosquitto_time() and time(). 2020-11-06 14:20:39 +00:00
Roger A. Light
23d3c2641e Optimise epoll event to context/listener mapping. Allows quicker lookups. 2020-11-05 16:10:50 +00:00
Roger A. Light
e6dd08074d TLS certificates for the server are now reloaded on SIGHUP. 2020-11-04 22:57:10 +00:00
Roger A. Light
291b711bd4 Fix incorrect disconnect messages. 2020-10-27 12:37:54 +00:00
Roger A. Light
88b5daee66 Try very hard not to produce "Socket error" message.
This happens when an unhandled error occurs on a socket/read write. The
message is confusing to people.
2020-10-27 10:04:22 +00:00
Roger A. Light
06b933c3ba Add tick event to plugin interface. 2020-10-23 22:51:08 +01:00
Roger A. Light
4f61f6c161 Fix conversion errors. 2020-10-17 01:23:08 +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
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
581e843131 Move keepalive check to its own function. 2020-08-18 08:40:33 +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
2dc8d2a19a Allow plugins to send messages to specific clients. 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
872222c3c9 Remove unused values.
Coverity Scan 1431134, 1431136, 1431140.
2020-08-06 13:42:35 +01:00
Roger A. Light
8416b007ec Send DISCONNECT with malformed-packet reason code on bad UNSUBSCRIBEs. 2020-08-02 14:22:40 +01:00
Roger Light
318dead6bf Function to allow plugins to publish messages. 2020-06-30 10:31:34 +01:00
Roger A. Light
ea47f6b0dc Clearer client disconnection message. 2020-04-28 10:42:49 +01:00
Roger Light
986bf89f47 Prototype separate poll/epoll files. 2020-03-26 10:35:02 +00:00
Roger A. Light
d96543c0b8 Merge branch 'fixes' into develop 2020-03-03 12:54:57 +00:00
Roger A. Light
b0a065f790 Update changelog. Release page. Bump copyright. 2020-02-27 23:26:58 +00:00
Roger A. Light
5528dde56a Fix possible null dereferences. 2020-01-23 12:51:12 +00:00
Roger A. Light
c0443637e8 Merge branch 'master'
Conflicts:
	ChangeLog.txt
	config.mk
	src/context.c
	src/loop.c
	src/subs.c
	test/broker/01-connect-bad-packet.py
	test/broker/02-subpub-qos1-bad-pubcomp.py
	test/broker/02-subpub-qos1-bad-pubrec.py
	test/broker/02-subpub-qos2-bad-puback-1.py
	test/broker/02-subpub-qos2-bad-puback-2.py
	test/broker/02-subpub-qos2-bad-pubcomp.py
	test/broker/02-subpub-qos2.py
	test/broker/07-will-null-topic.py
2019-12-03 13:59:05 +00:00
Roger A. Light
6dec2b468b Remove redundant expiry checks
This is all now handled in session_expiry.c, through session expiry interval/time.
2019-11-28 16:19:57 +00:00
Roger A. Light
54ed3c0fc9 Merge branch 'master' into develop 2019-09-25 19:09:10 +01:00
Roger A. Light
1a8c44b84f Fix regression on use of mosquitto_connect_async() not working.
Closes #1415 and #1422. Thanks to Karl Palsson, Till Zimmermann and Liam Fry.
2019-09-24 20:15:04 +01:00
Roger A. Light
096380fbdc Add workaround for libwebsockets 3.2.0. 2019-09-24 10:21:51 +01:00
Roger A. Light
8f6ac1b64a Fix for websockets regression. 2019-09-12 13:31:01 +01:00
Roger A. Light
9ad5fe7d95 Fix repeated "Error in poll" messages on Windows.
This occurs when only websockets listeners are defined.

Closes #1391. Thanks to stopak.
2019-09-11 15:53:36 +01:00
Roger A. Light
034324c46d Fix websockets 3.2 causing slow connection on non-websockets listeners
Closes #1406. Thanks to pbrenna.
2019-09-07 21:45:56 +01:00
Roger A. Light
f1516f86cb Improve error messages in some situations when clients disconnect.
Reduces the number of "Socket error on client X, disconnecting"
messages.
2019-09-05 12:31:52 +01:00
Roger A. Light
1c1ccaee52 Merge branch 'master' into develop 2019-08-06 15:04:36 +01:00
Roger A. Light
13ac1080a0 Refactoring bridge code
This separates out a good amount from the main loop code.
2019-07-11 14:43:32 +01:00
Roger A. Light
5088202529 Fix persistent Websockets clients not receiving messages.
This occurs after they reconnect, having sent DISCONNECT
on a previous session.

Closes #1227. Thanks to usernametaken.
2019-05-28 22:13:22 +01:00
Roger A. Light
baf1909ffb Improve some messages when client disconnects. 2019-04-16 11:40:07 +01:00
Roger A. Light
9faad1e078 Fix a variety of scan-build warnings. 2019-03-26 14:00:42 +00:00
Roger A. Light
214a5f3aab v5 persistence file format
This includes changes to improve read/write performance.
It is not complete, and will have further changes to add properties and anything else required for MQTT v5.
2019-03-21 00:35:56 +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
110f4aada6 Don't overwrite disused client state. 2019-03-15 21:38:24 +00:00
Roger A. Light
2dd24449ad Fix "unused parameter" warnings. 2019-03-13 14:46:05 +00:00
Roger A. Light
ac91144495 Session expiry interval support - not working for file persistence. 2019-03-06 14:47:16 +00:00
Roger A. Light
ce31269e05 Update changelog, bump version, bump copyright year. 2019-02-28 16:56:15 +00:00
Roger A. Light
c506c8335b Will delay tests and implementation. 2019-02-27 09:27:34 +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
d6a690aa8d Fix Will not being sent for Websockets clients.
Closes #1143. Thanks to salcedo.
2019-02-08 13:01:07 +00:00
Roger A. Light
fcf4cd0b27 Merge branch 'master' into mqtt5 2018-12-19 14:11:11 +00:00
Roger A. Light
89f3d7bb3f Don't print connect/disconnect messages when connection_messages false.
Closes #772. Closes #613. Closes #537.

Thanks to Christopher Maynard, Brandon Arrendondo, and qubeck.
2018-12-11 10:55:39 +00:00