mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-09-23 08:33:48 +08:00
sqlite: client_msgs are only ever all cleared
This commit is contained in:
@@ -111,36 +111,20 @@ int persist_sqlite__client_msg_update_cb(int event, void *event_data, void *user
|
||||
}
|
||||
|
||||
|
||||
int persist_sqlite__client_msg_clear(struct mosquitto_sqlite *ms, const char *client_id, int direction)
|
||||
int persist_sqlite__client_msg_clear(struct mosquitto_sqlite *ms, const char *client_id)
|
||||
{
|
||||
int rc = MOSQ_ERR_UNKNOWN;
|
||||
|
||||
if(direction == mosq_bmd_all){
|
||||
if(sqlite3_bind_text(ms->client_msg_clear_all_stmt, 1, client_id, (int)strlen(client_id), SQLITE_STATIC) == SQLITE_OK){
|
||||
ms->event_count++;
|
||||
rc = sqlite3_step(ms->client_msg_clear_all_stmt);
|
||||
if(rc == SQLITE_DONE){
|
||||
rc = MOSQ_ERR_SUCCESS;
|
||||
}else{
|
||||
rc = MOSQ_ERR_UNKNOWN;
|
||||
}
|
||||
if(sqlite3_bind_text(ms->client_msg_clear_all_stmt, 1, client_id, (int)strlen(client_id), SQLITE_STATIC) == SQLITE_OK){
|
||||
ms->event_count++;
|
||||
rc = sqlite3_step(ms->client_msg_clear_all_stmt);
|
||||
if(rc == SQLITE_DONE){
|
||||
rc = MOSQ_ERR_SUCCESS;
|
||||
}else{
|
||||
rc = MOSQ_ERR_UNKNOWN;
|
||||
}
|
||||
sqlite3_reset(ms->client_msg_clear_all_stmt);
|
||||
}else{
|
||||
if(sqlite3_bind_text(ms->client_msg_clear_stmt, 1, client_id, (int)strlen(client_id), SQLITE_STATIC) == SQLITE_OK
|
||||
&& sqlite3_bind_int64(ms->client_msg_clear_stmt, 2, direction) == SQLITE_OK
|
||||
){
|
||||
|
||||
ms->event_count++;
|
||||
rc = sqlite3_step(ms->client_msg_clear_stmt);
|
||||
if(rc == SQLITE_DONE){
|
||||
rc = MOSQ_ERR_SUCCESS;
|
||||
}else{
|
||||
rc = MOSQ_ERR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
sqlite3_reset(ms->client_msg_clear_stmt);
|
||||
}
|
||||
sqlite3_reset(ms->client_msg_clear_all_stmt);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ int persist_sqlite__client_remove_cb(int event, void *event_data, void *userdata
|
||||
rc = MOSQ_ERR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
persist_sqlite__client_msg_clear(ms, ed->client_id, mosq_bmd_all);
|
||||
persist_sqlite__client_msg_clear(ms, ed->client_id);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ int persist_sqlite__client_add_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__client_update_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__client_remove_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__client_msg_add_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__client_msg_clear(struct mosquitto_sqlite *ms, const char *client_id, int direction);
|
||||
int persist_sqlite__client_msg_clear(struct mosquitto_sqlite *ms, const char *client_id);
|
||||
int persist_sqlite__client_msg_remove_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__client_msg_update_cb(int event, void *event_data, void *userdata);
|
||||
int persist_sqlite__base_msg_add_cb(int event, void *event_data, void *userdata);
|
||||
|
||||
Reference in New Issue
Block a user