From 085b337a5e1ab774ec28b961522c4c553f2ce0ef Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Sat, 21 Jan 2023 18:37:46 +0300 Subject: [PATCH] feat(dbms): save db list after adding/removing/editing any --- tdbms/server/tdbms-server.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tdbms/server/tdbms-server.c b/tdbms/server/tdbms-server.c index 64a90d0..d79eff3 100644 --- a/tdbms/server/tdbms-server.c +++ b/tdbms/server/tdbms-server.c @@ -192,11 +192,11 @@ void dblist_load() { } // Save database list -int dblist_save() { +void dblist_save() { FILE *fdblist = fopen(TDBMS_VAR_DIR"/.dblist", "wb"); if (fdblist == NULL) { logtf(LOG_CRITICAL, "failed to save database list file"); - return 1; + return; } TDB *tdb = db_list; for (uint16_t i = 0; i < db_count; i++) { @@ -204,7 +204,6 @@ int dblist_save() { tdb++; } fclose(fdblist); - return 0; } // Open TDBMS server socket @@ -346,6 +345,7 @@ int execute(char *request, char **response) { tanabata_init(tdb->database); strcpy(tdb->name, request_db_name); strcpy(tdb->path, request_body); + dblist_save(); return 0; } if (request_code == trc_db_load) { @@ -404,6 +404,7 @@ int execute(char *request, char **response) { return 1; } } + dblist_save(); return 0; } 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 = reallocarray(db_list, db_count, sizeof(TDB)); + dblist_save(); return 0; } if (request_code == trc_db_remove_hard) { @@ -448,6 +450,7 @@ int execute(char *request, char **response) { strcpy(remove_path + pathlen, "/shoppyou"); unlink(remove_path); free(remove_path); + dblist_save(); return 0; } if (request_code == trc_db_weed) {