The MOSQ_EVT_PERSIST_CLIENT_MSG_CLEAR event has been removed, due to
never being called. It is the responsibility of the plugin to remove
client subscriptions and client messages when the client is removed.
Lots of persist test improvements and additions - mostly checking item
counts.
Currently only a single plugin can interact with a unique $CONTROL
topic. Using multiple instances of the plugin would produce duplicate
entries in the config file.
Closes#2601.
Closes#2470.
They will now not modify the client/group if a new group/client being
added is not valid, or on other failures.
Closes#2598. Thanks to Sebastian Szczepański.
this makes it possible to explicitly share compile options, without
using the `add_definition` function. This function declares options for
the current directory and below (in our case also for `deps`).
Adding -Wall, -Wconversion and -Wextra to at least make compiler
warnings visible for the cmake build.
Signed-off-by: Kai Buschulte <kai.buschulte@cedalo.com>
This is an interface cmake target which specifies include directories
required by the config.h places in the root of the project.
This header is a "public" header visible to plugins linking the
mosquitto exports.
Signed-off-by: Kai Buschulte <kai.buschulte@cedalo.com>
Core symbols needed by plugins are now properly linked to their objects
* Remove link_directories() call:
This specification is not necessary for our own libraries as cmake
shares this information over the targets.
If needed they should be specified target specific, like done for
the external DLT library.
Signed-off-by: Kai Buschulte <kai.buschulte@cedalo.com>
CMake >= 3.14 comes with a preinstalled FindSQLite3 module, which now
replaces the self-written one.
Signed-off-by: Kai Buschulte <kai.buschulte@cedalo.com>
* Addded missing files plugin_subscribe and plugin_unsubscribe to src/CMakeLists.txt
* Aligned mixed usage of all-keyword and all-plain in target_link_libra…ry definition in in CMakeLists.txt
Signed-off-by: Norbert Heusser <norbert.heusser@cedalo.com>
Some members of the persist plugin interface are only used to find a
client struct, for example. There is no need for the plugin to allocate
a new copy and the broker to free it in that case.
struct mosquitto_msg_store -> struct mosquitto_base_msg
This is the base message which client messages and retained messages
refer to. The base messages are still held in the message store.
This change comes about because the persistence interface exposes these
message types. Prior to this commit the different messages were "msg",
"client_msg", and "retain". After this commit there is "base_msg",
"client_msg", and and "retain_msg" in the persist interface.
* Added new helper function mosquitto_apply_on_all_clients to broker
* Refactoring in dynamic-security plugin
Signed-off-by: Norbert Heusser <norbert.heusser@cedalo.com>
On Windows MODULE will be installed as LIBRARY component
to `lib` folder that is not prefer for dynamic loaded modules
but can be found in RUNTIME DESTINATION (`bin` folder) too.
Signed-off-by: Konstantin Podsvirov <konstantin@podsvirov.pro>