sqlite: client_msgs are only ever all cleared

This commit is contained in:
Roger A. Light
2022-10-11 21:49:33 +01:00
parent bdf8493e81
commit 2bfb0dc022
3 changed files with 11 additions and 27 deletions
+9 -25
View File
@@ -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;
}
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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);