feat(dbms): save db list after adding/removing/editing any

This commit is contained in:
Masahiko AMANO 2023-01-21 18:37:46 +03:00
parent a389d959e0
commit 085b337a5e

View File

@ -192,11 +192,11 @@ void dblist_load() {
} }
// Save database list // Save database list
int dblist_save() { void dblist_save() {
FILE *fdblist = fopen(TDBMS_VAR_DIR"/.dblist", "wb"); FILE *fdblist = fopen(TDBMS_VAR_DIR"/.dblist", "wb");
if (fdblist == NULL) { if (fdblist == NULL) {
logtf(LOG_CRITICAL, "failed to save database list file"); logtf(LOG_CRITICAL, "failed to save database list file");
return 1; return;
} }
TDB *tdb = db_list; TDB *tdb = db_list;
for (uint16_t i = 0; i < db_count; i++) { for (uint16_t i = 0; i < db_count; i++) {
@ -204,7 +204,6 @@ int dblist_save() {
tdb++; tdb++;
} }
fclose(fdblist); fclose(fdblist);
return 0;
} }
// Open TDBMS server socket // Open TDBMS server socket
@ -346,6 +345,7 @@ int execute(char *request, char **response) {
tanabata_init(tdb->database); tanabata_init(tdb->database);
strcpy(tdb->name, request_db_name); strcpy(tdb->name, request_db_name);
strcpy(tdb->path, request_body); strcpy(tdb->path, request_body);
dblist_save();
return 0; return 0;
} }
if (request_code == trc_db_load) { if (request_code == trc_db_load) {
@ -404,6 +404,7 @@ int execute(char *request, char **response) {
return 1; return 1;
} }
} }
dblist_save();
return 0; return 0;
} }
if (request_code == trc_db_remove_soft) { if (request_code == trc_db_remove_soft) {
@ -421,6 +422,7 @@ int execute(char *request, char **response) {
db_list[i] = db_list[i + 1]; db_list[i] = db_list[i + 1];
} }
db_list = reallocarray(db_list, db_count, sizeof(TDB)); db_list = reallocarray(db_list, db_count, sizeof(TDB));
dblist_save();
return 0; return 0;
} }
if (request_code == trc_db_remove_hard) { if (request_code == trc_db_remove_hard) {
@ -448,6 +450,7 @@ int execute(char *request, char **response) {
strcpy(remove_path + pathlen, "/shoppyou"); strcpy(remove_path + pathlen, "/shoppyou");
unlink(remove_path); unlink(remove_path);
free(remove_path); free(remove_path);
dblist_save();
return 0; return 0;
} }
if (request_code == trc_db_weed) { if (request_code == trc_db_weed) {