mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-02-05 18:50:06 +08:00
Rename persist retain_add to retain_set
This commit is contained in:
@@ -79,7 +79,7 @@ enum mosquitto_plugin_event {
|
||||
MOSQ_EVT_PERSIST_BASE_MSG_ADD = 14,
|
||||
MOSQ_EVT_PERSIST_BASE_MSG_DELETE = 15,
|
||||
MOSQ_EVT_PERSIST_BASE_MSG_LOAD = 16,
|
||||
MOSQ_EVT_PERSIST_RETAIN_MSG_ADD = 17,
|
||||
MOSQ_EVT_PERSIST_RETAIN_MSG_SET = 17,
|
||||
MOSQ_EVT_PERSIST_RETAIN_MSG_DELETE = 18,
|
||||
MOSQ_EVT_PERSIST_CLIENT_ADD = 19,
|
||||
MOSQ_EVT_PERSIST_CLIENT_DELETE = 20,
|
||||
@@ -296,7 +296,7 @@ struct mosquitto_evt_persist_base_msg {
|
||||
};
|
||||
|
||||
|
||||
/* Data for the MOSQ_EVT_PERSIST_RETAIN/_DELETE event */
|
||||
/* Data for the MOSQ_EVT_PERSIST_RETAIN_MSG_SET/_DELETE event */
|
||||
/* NOTE: The persistence interface is currently marked as unstable, which means
|
||||
* it may change in a future minor release. */
|
||||
struct mosquitto_evt_persist_retain_msg {
|
||||
@@ -1059,9 +1059,9 @@ int mosquitto_subscription_add(const char *client_id, const char *topic, uint8_t
|
||||
int mosquitto_subscription_delete(const char *client_id, const char *topic);
|
||||
|
||||
|
||||
/* Function: mosquitto_persist_retain_msg_add
|
||||
/* Function: mosquitto_persist_retain_msg_set
|
||||
*
|
||||
* Use to add a retained message. It is not required to delete a retained
|
||||
* Use to set a retained message. It is not required to delete a retained
|
||||
* message for an existing topic first.
|
||||
*
|
||||
* Parameters:
|
||||
@@ -1074,7 +1074,7 @@ int mosquitto_subscription_delete(const char *client_id, const char *topic);
|
||||
* MOSQ_ERR_NOT_FOUND - the referenced base message was not found
|
||||
* MOSQ_ERR_NOMEM - on out of memory
|
||||
*/
|
||||
int mosquitto_persist_retain_msg_add(const char *topic, uint64_t store_id);
|
||||
int mosquitto_persist_retain_msg_set(const char *topic, uint64_t store_id);
|
||||
|
||||
|
||||
/* Function: mosquitto_persist_retain_msg_delete
|
||||
|
||||
@@ -68,7 +68,7 @@ const char evt_topics[][60] = {
|
||||
TOPIC_BASE "persist/message/base/add", /* MOSQ_EVT_PERSIST_MSG_ADD */
|
||||
TOPIC_BASE "persist/message/base/delete", /* MOSQ_EVT_PERSIST_MSG_DELETE */
|
||||
TOPIC_BASE "persist/message/base/load", /* MOSQ_EVT_PERSIST_MSG_LOAD */
|
||||
TOPIC_BASE "persist/message/retain/add", /* MOSQ_EVT_PERSIST_RETAIN_ADD */
|
||||
TOPIC_BASE "persist/message/retain/set", /* MOSQ_EVT_PERSIST_RETAIN_SET */
|
||||
TOPIC_BASE "persist/message/retain/delete", /* MOSQ_EVT_PERSIST_RETAIN_DELETE */
|
||||
TOPIC_BASE "persist/client/add", /* MOSQ_EVT_PERSIST_CLIENT_ADD */
|
||||
TOPIC_BASE "persist/client/delete", /* MOSQ_EVT_PERSIST_CLIENT_DELETE */
|
||||
|
||||
@@ -233,7 +233,7 @@ static int prepare_statements(struct mosquitto_sqlite *ms)
|
||||
"(topic, store_id)"
|
||||
"VALUES(?,?)",
|
||||
-1, SQLITE_PREPARE_PERSISTENT,
|
||||
&ms->retain_msg_add_stmt, NULL);
|
||||
&ms->retain_msg_set_stmt, NULL);
|
||||
if(rc) goto fail;
|
||||
|
||||
rc = sqlite3_prepare_v3(ms->db,
|
||||
@@ -300,7 +300,7 @@ void persist_sqlite__cleanup(struct mosquitto_sqlite *ms)
|
||||
sqlite3_finalize(ms->base_msg_add_stmt);
|
||||
sqlite3_finalize(ms->base_msg_remove_stmt);
|
||||
sqlite3_finalize(ms->base_msg_load_stmt);
|
||||
sqlite3_finalize(ms->retain_msg_add_stmt);
|
||||
sqlite3_finalize(ms->retain_msg_set_stmt);
|
||||
sqlite3_finalize(ms->retain_msg_remove_stmt);
|
||||
|
||||
if(ms->db){
|
||||
|
||||
@@ -42,7 +42,7 @@ struct mosquitto_sqlite {
|
||||
sqlite3_stmt *base_msg_add_stmt;
|
||||
sqlite3_stmt *base_msg_remove_stmt;
|
||||
sqlite3_stmt *base_msg_load_stmt;
|
||||
sqlite3_stmt *retain_msg_add_stmt;
|
||||
sqlite3_stmt *retain_msg_set_stmt;
|
||||
sqlite3_stmt *retain_msg_remove_stmt;
|
||||
time_t last_transaction;
|
||||
int synchronous;
|
||||
@@ -64,7 +64,7 @@ int persist_sqlite__client_msg_update_cb(int event, void *event_data, void *user
|
||||
int persist_sqlite__base_msg_add_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__base_msg_load_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__base_msg_remove_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__retain_msg_add_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__retain_msg_set_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__retain_msg_remove_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__subscription_add_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__subscription_remove_cb(int event, void *event_data, void *userdata);
|
||||
|
||||
@@ -96,7 +96,7 @@ int mosquitto_plugin_init(mosquitto_plugin_id_t *identifier, void **user_data, s
|
||||
if(rc) goto fail;
|
||||
rc = mosquitto_callback_register(plg_id, MOSQ_EVT_PERSIST_BASE_MSG_LOAD, persist_sqlite__base_msg_load_cb, NULL, &plg_data);
|
||||
if(rc) goto fail;
|
||||
rc = mosquitto_callback_register(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_ADD, persist_sqlite__retain_msg_add_cb, NULL, &plg_data);
|
||||
rc = mosquitto_callback_register(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_SET, persist_sqlite__retain_msg_set_cb, NULL, &plg_data);
|
||||
if(rc) goto fail;
|
||||
rc = mosquitto_callback_register(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_DELETE, persist_sqlite__retain_msg_remove_cb, NULL, &plg_data);
|
||||
if(rc) goto fail;
|
||||
@@ -145,7 +145,7 @@ int mosquitto_plugin_cleanup(void *user_data, struct mosquitto_opt *options, int
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_BASE_MSG_ADD, persist_sqlite__base_msg_add_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_BASE_MSG_DELETE, persist_sqlite__base_msg_remove_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_BASE_MSG_LOAD, persist_sqlite__base_msg_load_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_ADD, persist_sqlite__retain_msg_add_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_SET, persist_sqlite__retain_msg_set_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_RETAIN_MSG_DELETE, persist_sqlite__retain_msg_remove_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_CLIENT_ADD, persist_sqlite__client_add_cb, NULL);
|
||||
mosquitto_callback_unregister(plg_id, MOSQ_EVT_PERSIST_CLIENT_DELETE, persist_sqlite__client_remove_cb, NULL);
|
||||
|
||||
@@ -343,7 +343,7 @@ static int retain_restore(struct mosquitto_sqlite *ms)
|
||||
}
|
||||
store_id = (uint64_t)sqlite3_column_int64(stmt, 1);
|
||||
|
||||
rc = mosquitto_persist_retain_msg_add(topic, store_id);
|
||||
rc = mosquitto_persist_retain_msg_set(topic, store_id);
|
||||
if(rc == MOSQ_ERR_SUCCESS){
|
||||
count++;
|
||||
}else{
|
||||
|
||||
@@ -23,7 +23,7 @@ Contributors:
|
||||
#include "mosquitto_broker.h"
|
||||
#include "persist_sqlite.h"
|
||||
|
||||
int persist_sqlite__retain_msg_add_cb(int event, void *event_data, void *userdata)
|
||||
int persist_sqlite__retain_msg_set_cb(int event, void *event_data, void *userdata)
|
||||
{
|
||||
struct mosquitto_evt_persist_retain_msg *ed = event_data;
|
||||
struct mosquitto_sqlite *ms = userdata;
|
||||
@@ -31,19 +31,19 @@ int persist_sqlite__retain_msg_add_cb(int event, void *event_data, void *userdat
|
||||
|
||||
UNUSED(event);
|
||||
|
||||
if(sqlite3_bind_text(ms->retain_msg_add_stmt, 1, ed->topic, (int)strlen(ed->topic), SQLITE_STATIC) == SQLITE_OK
|
||||
&& sqlite3_bind_int64(ms->retain_msg_add_stmt, 2, (int64_t)ed->store_id) == SQLITE_OK
|
||||
if(sqlite3_bind_text(ms->retain_msg_set_stmt, 1, ed->topic, (int)strlen(ed->topic), SQLITE_STATIC) == SQLITE_OK
|
||||
&& sqlite3_bind_int64(ms->retain_msg_set_stmt, 2, (int64_t)ed->store_id) == SQLITE_OK
|
||||
){
|
||||
|
||||
ms->event_count++;
|
||||
rc = sqlite3_step(ms->retain_msg_add_stmt);
|
||||
rc = sqlite3_step(ms->retain_msg_set_stmt);
|
||||
if(rc == SQLITE_DONE){
|
||||
rc = MOSQ_ERR_SUCCESS;
|
||||
}else{
|
||||
rc = MOSQ_ERR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
sqlite3_reset(ms->retain_msg_add_stmt);
|
||||
sqlite3_reset(ms->retain_msg_set_stmt);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ _mosquitto_persist_client_msg_add
|
||||
_mosquitto_persist_client_msg_delete
|
||||
_mosquitto_persist_client_msg_update
|
||||
_mosquitto_persist_client_update
|
||||
_mosquitto_persist_retain_msg_add
|
||||
_mosquitto_persist_retain_msg_set
|
||||
_mosquitto_persist_retain_msg_delete
|
||||
_mosquitto_plugin_set_info
|
||||
_mosquitto_property_add_binary
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
mosquitto_persist_client_msg_delete;
|
||||
mosquitto_persist_client_msg_update;
|
||||
mosquitto_persist_client_update;
|
||||
mosquitto_persist_retain_msg_add;
|
||||
mosquitto_persist_retain_msg_set;
|
||||
mosquitto_persist_retain_msg_delete;
|
||||
mosquitto_plugin_set_info;
|
||||
mosquitto_property_add_binary;
|
||||
|
||||
@@ -177,7 +177,7 @@ struct plugin__callbacks{
|
||||
struct mosquitto__callback *persist_base_msg_add;
|
||||
struct mosquitto__callback *persist_base_msg_delete;
|
||||
struct mosquitto__callback *persist_base_msg_load;
|
||||
struct mosquitto__callback *persist_retain_msg_add;
|
||||
struct mosquitto__callback *persist_retain_msg_set;
|
||||
struct mosquitto__callback *persist_retain_msg_delete;
|
||||
};
|
||||
|
||||
@@ -871,7 +871,7 @@ void plugin_persist__handle_client_msg_update(struct mosquitto *context, const s
|
||||
void plugin_persist__handle_client_msg_clear(struct mosquitto *context, uint8_t direction);
|
||||
void plugin_persist__handle_base_msg_add(struct mosquitto_base_msg *base_msg);
|
||||
void plugin_persist__handle_base_msg_delete(struct mosquitto_base_msg *base_msg);
|
||||
void plugin_persist__handle_retain_msg_add(struct mosquitto_base_msg *base_msg);
|
||||
void plugin_persist__handle_retain_msg_set(struct mosquitto_base_msg *base_msg);
|
||||
void plugin_persist__handle_retain_msg_delete(struct mosquitto_base_msg *base_msg);
|
||||
|
||||
/* ============================================================
|
||||
|
||||
@@ -55,8 +55,8 @@ static const char *get_event_name(int event)
|
||||
return "persist-base-msg-delete";
|
||||
case MOSQ_EVT_PERSIST_BASE_MSG_LOAD:
|
||||
return "persist-base-msg-load";
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_ADD:
|
||||
return "persist-retain-msg-add";
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_SET:
|
||||
return "persist-retain-msg-set";
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_DELETE:
|
||||
return "persist-retain-msg-delete";
|
||||
case MOSQ_EVT_PERSIST_CLIENT_ADD:
|
||||
@@ -147,8 +147,8 @@ static struct mosquitto__callback **plugin__get_callback_base(struct mosquitto__
|
||||
return &security_options->plugin_callbacks.persist_base_msg_delete;
|
||||
case MOSQ_EVT_PERSIST_BASE_MSG_LOAD:
|
||||
return &security_options->plugin_callbacks.persist_base_msg_load;
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_ADD:
|
||||
return &security_options->plugin_callbacks.persist_retain_msg_add;
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_SET:
|
||||
return &security_options->plugin_callbacks.persist_retain_msg_set;
|
||||
case MOSQ_EVT_PERSIST_RETAIN_MSG_DELETE:
|
||||
return &security_options->plugin_callbacks.persist_retain_msg_delete;
|
||||
default:
|
||||
|
||||
@@ -349,7 +349,7 @@ void plugin_persist__handle_base_msg_delete(struct mosquitto_base_msg *msg)
|
||||
}
|
||||
|
||||
|
||||
void plugin_persist__handle_retain_msg_add(struct mosquitto_base_msg *msg)
|
||||
void plugin_persist__handle_retain_msg_set(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
struct mosquitto_evt_persist_retain_msg event_data;
|
||||
struct mosquitto__callback *cb_base;
|
||||
@@ -363,8 +363,8 @@ void plugin_persist__handle_retain_msg_add(struct mosquitto_base_msg *msg)
|
||||
event_data.store_id = msg->db_id;
|
||||
event_data.topic = msg->topic;
|
||||
|
||||
DL_FOREACH(opts->plugin_callbacks.persist_retain_msg_add, cb_base){
|
||||
cb_base->cb(MOSQ_EVT_PERSIST_RETAIN_MSG_ADD, &event_data, cb_base->userdata);
|
||||
DL_FOREACH(opts->plugin_callbacks.persist_retain_msg_set, cb_base){
|
||||
cb_base->cb(MOSQ_EVT_PERSIST_RETAIN_MSG_SET, &event_data, cb_base->userdata);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ int retain__init(void)
|
||||
return MOSQ_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
int mosquitto_persist_retain_msg_add(const char *topic, uint64_t base_msg_id)
|
||||
int mosquitto_persist_retain_msg_set(const char *topic, uint64_t base_msg_id)
|
||||
{
|
||||
struct mosquitto_base_msg *base_msg;
|
||||
int rc = MOSQ_ERR_UNKNOWN;
|
||||
@@ -157,7 +157,8 @@ int retain__store(const char *topic, struct mosquitto_base_msg *base_msg, char *
|
||||
#endif
|
||||
|
||||
if(retainhier->retained){
|
||||
if(persist && retainhier->retained->topic[0] != '$'){
|
||||
if(persist && retainhier->retained->topic[0] != '$' && base_msg->payloadlen == 0){
|
||||
/* Only delete if another retained message isn't replacing this one */
|
||||
plugin_persist__handle_retain_msg_delete(retainhier->retained);
|
||||
}
|
||||
db__msg_store_ref_dec(&retainhier->retained);
|
||||
@@ -173,7 +174,7 @@ int retain__store(const char *topic, struct mosquitto_base_msg *base_msg, char *
|
||||
db__msg_store_ref_inc(retainhier->retained);
|
||||
if(persist && retainhier->retained->topic[0] != '$'){
|
||||
plugin_persist__handle_base_msg_add(retainhier->retained);
|
||||
plugin_persist__handle_retain_msg_add(retainhier->retained);
|
||||
plugin_persist__handle_retain_msg_set(retainhier->retained);
|
||||
}
|
||||
#ifdef WITH_SYS_TREE
|
||||
db.retained_count++;
|
||||
|
||||
@@ -227,7 +227,7 @@ void context__add_to_by_id(struct mosquitto *context)
|
||||
}
|
||||
}
|
||||
|
||||
void plugin_persist__handle_retain_msg_add(struct mosquitto_base_msg *msg)
|
||||
void plugin_persist__handle_retain_msg_set(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
UNUSED(msg);
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ void plugin_persist__handle_base_msg_delete(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
UNUSED(msg);
|
||||
}
|
||||
void plugin_persist__handle_retain_msg_add(struct mosquitto_base_msg *msg)
|
||||
void plugin_persist__handle_retain_msg_set(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
UNUSED(msg);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ struct mosquitto_db{
|
||||
|
||||
};
|
||||
|
||||
struct mosquitto_msg_store{
|
||||
struct mosquitto_base_msg{
|
||||
|
||||
};
|
||||
|
||||
@@ -95,12 +95,12 @@ ssize_t net__write(struct mosquitto *mosq, const void *buf, size_t count)
|
||||
return 1;
|
||||
}
|
||||
|
||||
void plugin_persist__handle_retain_add(struct mosquitto_msg_store *msg)
|
||||
void plugin_persist__handle_retain_set(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
UNUSED(msg);
|
||||
}
|
||||
|
||||
void plugin_persist__handle_retain_remove(struct mosquitto_msg_store *msg)
|
||||
void plugin_persist__handle_retain_remove(struct mosquitto_base_msg *msg)
|
||||
{
|
||||
UNUSED(msg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user