Roger A. Light
3aca8c1d8e
Guard against libwebsockets assert in 3.2.1 and up.
5 years ago
Roger A. Light
8787ec7b2e
Remove non-existant linker functions.
5 years ago
Roger A. Light
b81f0d6782
Set to NULL for safety.
5 years ago
Roger A. Light
524510f4f6
Fix some plugin memory not being freed on exit.
5 years ago
Roger A. Light
f02c67fecf
Fix file logging on Windows.
...
Closes #1880 . Thanks to J1EXA, richl, and EnneiteZer.
5 years ago
Roger A. Light
47f4cb8159
Fix potential null dereference.
5 years ago
Roger A. Light
5db9884bac
Fix poll() build
5 years ago
Roger A. Light
e7a4e73cd8
Fix listener not being reassociated with client.
...
This occurred when reloading a persistence file and
`per_listener_settings true` is set and the client did not set a
username.
Closes #1891 . Thanks to Mikkel Nepper-Christensen.
5 years ago
Roger A. Light
90ce92144c
Fix websockets build.
5 years ago
Roger A. Light
26e8cc3fb9
Fix connack props not being freed on error.
5 years ago
Roger A. Light
8de1216105
No need to call time() when logging.
5 years ago
Roger A. Light
b816d46508
Use db as a global var instead of passing to functions.
...
This allows a big swath of ifdefs to be removed. It also means savings as the db var is not passed around all of the time, and makes it easier to remove the final broker call to mosquitto_time() call in packet_mosq.c. In one test this reduced the calls to mosquitto_time() from 295k to 48k.
5 years ago
Roger A. Light
108b23ce6d
Reduce use of mosquitto_time() and time().
5 years ago
Roger A. Light
e6b8fc5bbd
Fix oversize packet check in CONNECT.
5 years ago
Roger A. Light
3091d624ed
Free plugin identifier.
5 years ago
Roger A. Light
c5ba597588
Fix use after free (unreleased)
5 years ago
Roger A. Light
693f6ad36e
Only make keepalive checks every 5 seconds.
5 years ago
Roger A. Light
23d3c2641e
Optimise epoll event to context/listener mapping. Allows quicker lookups.
5 years ago
Roger A. Light
2a1df4ddb2
Breaking: Drop privileges after loading the configuration
...
This change means privileges are dropped before loading certificates, starting logging, creating the pid file etc. are carried out, so all of those actions must now be changed to ensure that the unprivileged user can carry them out.
5 years ago
Roger A. Light
c5fee09c24
Basic client disconnect event support for plugins.
5 years ago
Roger A. Light
4d6384c758
Build and conversion fixes for build variants.
5 years ago
Roger A. Light
e6dd08074d
TLS certificates for the server are now reloaded on SIGHUP.
5 years ago
Roger A. Light
b2560f5e06
Move certificate loading to its own function.
5 years ago
Roger A. Light
24462a816b
Tidy up headers.
5 years ago
Roger A. Light
801e31efda
Dynsec: Validate user/group/role names as UTF-8.
5 years ago
Roger A. Light
7462fec1c8
Dynsec: Check ACLs are valid topic filters.
5 years ago
Roger A. Light
1191a42c2e
Fix more incorrect quota handling.
...
Must check QoS, and directions were wrong.
5 years ago
Roger A. Light
042c2733f2
Test and fix for message expiry not increasing send quota.
5 years ago
Roger A. Light
31b1cbb23f
dynsec: Clients can be created with no password.
...
They will be unable to log in until a password is created.
5 years ago
Roger A. Light
fcb8bc0b9b
Fix use of incorrect callback list.
5 years ago
Roger A. Light
e01d391c0b
Fix crash on Windows if loading a plugin fails.
...
Closes #1866 . Thanks to roebotron.
5 years ago
Roger A. Light
451b8d0f59
Remove allocs in logging.
5 years ago
Roger A. Light
edee5aaf8d
Add the `bridge_bind_address` option.
...
Closes #1311 . Thanks to beville.
5 years ago
Roger A. Light
443275a2d0
Fix more "incorrect" disconnect messages.
5 years ago
Roger A. Light
dcf6372a2a
Add support for bridge retain-available.
5 years ago
Roger A. Light
291b711bd4
Fix incorrect disconnect messages.
5 years ago
Roger A. Light
d8f5aacd7f
Add the `bridge_max_packet_size` option.
...
Closes #265 .
5 years ago
Roger A. Light
916c3744f3
Fix `log_timestamp_format` not applying to `log_dest topic`.
...
Closes #1862 . Thanks to Kaushik-27.
5 years ago
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.
5 years ago
Roger A. Light
fdff255916
New dynamic security plugin.
5 years ago
Roger A. Light
3b99fbbe8c
Return MOSQ_ERR_NOT_SUPPORTED on unsupported plugin event.
5 years ago
Roger A. Light
95e009c429
Document what to do on non-matching plugin versions.
5 years ago
Roger A. Light
42b9d94e91
Tell plugins which plugin versions the broker supports.
5 years ago
Roger A. Light
06b933c3ba
Add tick event to plugin interface.
5 years ago
Roger A. Light
9d68da4664
Fix plugin payload modification.
5 years ago
Roger A. Light
e69dedfc27
Make more portable.
5 years ago
Roger A. Light
6035d8015b
Consistent naming.
5 years ago
Roger A. Light
c51f2300f1
Log warning if starting in local only mode.
5 years ago
Roger A. Light
1851a0e1b1
Add support for pbkdf2 hash iterations.
5 years ago
Roger A. Light
4ae8971ce1
The broker now sends the receive-maximum property for MQTT v5 CONNACKs.
5 years ago
Roger A. Light
4f61f6c161
Fix conversion errors.
5 years ago
Roger A. Light
ef68063985
Convert default security to "plugin" mode.
...
This converts password_file and acl_file checks to act like a v5 plugin.
5 years ago
Roger A. Light
f18f1a08a9
Merge branch 'feature/add-deny-option-for-acl' of git://github.com/BrandtHill/mosquitto into BrandtHill-feature/add-deny-option-for-acl
5 years ago
Roger A. Light
94c4108977
The `pid_file` option will now always attempt to write a pid file.
...
This happens regardless of whether the `-d` argument is used when
running the broker.
Closes #1845 . Thanks to habazut.
5 years ago
Roger A. Light
89733138bb
CMake build fixes.
5 years ago
Roger A. Light
24a9c7d508
Build variant fixes.
5 years ago
Roger A. Light
d70ffd4b00
Move db_dump to apps directory.
5 years ago
Roger A. Light
b404d56281
Move deps directory to root.
5 years ago
Roger A. Light
f85e004415
Move password functions to own file.
5 years ago
Roger A. Light
4472c1f441
Added support for controlling UNSUBSCRIBE calls in v5 plugin ACL checks.
5 years ago
Roger A. Light
a65f946e83
Move headers to own directory.
5 years ago
Roger A. Light
908b33c0bd
Update uthash to 2.1.0.
5 years ago
Roger Light
5b4884a855
Callback struct padding for future use.
5 years ago
Roger Light
bcf7545015
Export broker plugin functions on Windows.
5 years ago
Roger Light
ff2636b3ae
Build fix for Windows.
5 years ago
Roger Light
e8a641c759
Fix plugin interface on example debug and defer plugins.
5 years ago
Roger A. Light
67549f48ba
context->mosq in websockets.
5 years ago
Roger A. Light
7cce159ff4
Don't free will_struct after the client context owns it.
5 years ago
Roger A. Light
c7f429cab2
Deprecation warnings.
5 years ago
Roger A. Light
c90e49af1b
Merge remote-tracking branch 'origin/fixes' into develop
5 years ago
Roger A. Light
0ad7bbbd29
Plugin header update with description.
5 years ago
Roger A. Light
36950cc71e
mosquitto_plugin_publish no longer exists.
5 years ago
Roger A. Light
54b9571516
Enable TLS with certfile+keyfile, not capath/cafile.
5 years ago
Roger A. Light
5371bd09d1
Add support for PBKDF2-SHA512 password hashing.
5 years ago
Roger A. Light
c927446264
Fix $CONTROL plugin unregistering.
5 years ago
Roger A. Light
d8d24e76eb
Free plugin identifier on cleanup.
5 years ago
Roger A. Light
5d6bdc5de4
Allow CONTROL messages to set a reason code/string for PUBACK/PUBREC.
5 years ago
Roger A. Light
cf1c156765
New plugin interface
...
This is not specific to authentication, and allows plugins greater flexibility in what events they are interested in. It also adds message handling, and $CONTROL handling.
5 years ago
Roger A. Light
43b3184492
Rename to indicate these are public functions.
5 years ago
Roger A. Light
2f89203c67
Always ensure the client is in the hash before deleting.
5 years ago
Roger A. Light
7ad1ec819c
Cleanup bridge ssl_ctx on exit.
5 years ago
Roger A. Light
a57e41beff
Fix use after free (develop branch only).
5 years ago
Roger A. Light
20feb10366
Fix leak on malformed v5 subscribe.
5 years ago
Roger A. Light
97bd527df0
Breaking: allow_anonymous defaults to false.
5 years ago
Roger A. Light
d7d3087b04
Breaking: Bind to loopback if no listeners are configured.
5 years ago
Roger A. Light
5daa5ee162
Add support for $CONTROL/ topics in plugins.
5 years ago
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.
5 years ago
Roger A. Light
3f1515e337
Fix missing argument.
5 years ago
Roger A. Light
bb5456729d
Move keepalive check code to separate file.
...
This is in preparation for changing to a tree based implementation.
5 years ago
Roger A. Light
961ffcb2ae
Remove redundant keepalive check.
...
Websockets clients are now part of the by_sock hashtable, so this isn't
needed.
5 years ago
Roger A. Light
219f2c20d2
Ensure all websockets outgoing buffer is used.
5 years ago
Roger A. Light
c1b009e4df
Fix memory leak on handling QoS 2 PUBLISH.
...
In some circumstances, Mosquitto could leak memory when handling PUBLISH messages. This is limited to incoming QoS 2 messages, and is related to the combination of the broker having persistence enabled, a clean session=false client, which was connected prior to the broker restarting, then has reconnected and has now sent messages at a sufficiently high rate that the incoming queue at the broker has filled up and hence messages are being dropped. This is more likely to have an effect where max_queued_messages is a small value. This has now been fixed.
Closes #1793 . Thanks to mbates14.
5 years ago
Roger A. Light
b3b58cc635
Build warning fixes.
5 years ago
Roger A. Light
4dc835b73d
Fix possible memory leaks on errors during persistence write.
5 years ago
Roger A. Light
18e79eac22
Use hash_find rather than hash_iter for unpwd check.
5 years ago
Roger A. Light
b66ffb8039
Move unpwd to security_options struct.
5 years ago
Roger A. Light
581e843131
Move keepalive check to its own function.
5 years ago
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.
5 years ago
Roger A. Light
a5f02f31fc
Json helper functions.
5 years ago
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.
5 years ago