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
Abilio Marques
ead440e47d
bridge: fix issue where keepalive_interval gets added to restart_timeout using ADNS
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2018-12-05 11:42:24 +00:00
Roger A. Light
54db895cb3
Rename clean_session to clean_start for v5.
2018-11-27 10:02:10 +00:00
Abilio Marques
a4a5236568
fix bug where bridge doesn't honor restart_timeout setting
...
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
2018-11-06 23:28:40 +00:00
Roger A. Light
eff8fab1b4
Only process network errors for clients that have nothing to read.
...
Closes #7 .
2018-11-06 23:02:33 +00:00
Roger A. Light
93f9e965a8
Only remove context from hash if there is a client id.
...
This should never happen, but just in case.
2018-11-06 23:01:06 +00:00
Roger A. Light
f9c9f3d396
Fix incorrect hash usage with duplicate clients.
...
Fix duplicate clients being added to by_id hash before the old client
was removed.
Closes #645 .
2018-09-25 14:25:54 +01:00
Roger A. Light
2b4ba10b3d
Fix "round_robin false" behaviour.
...
Closes #481 .
2018-09-19 17:30:38 +01:00
Roger A. Light
1e47ee4cad
Fix for bridge connections when using WITH_ADNS=yes.
2018-09-19 12:55:08 +01:00
Roger A. Light
2221deb7a7
Fix build when using WITH_ADNS=yes.
2018-08-30 20:44:17 +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
a199cac69e
Don't confuse expiring and duplicate clients.
2018-08-15 17:27:59 +01:00