feat(dbms): send all tdb stats when got empty db name with trc_db_stats

This commit is contained in:
Masahiko AMANO 2023-01-21 14:21:02 +03:00
parent 225b1be031
commit fae600d5d4

View File

@ -270,24 +270,65 @@ int execute(char *request, char **response) {
} }
char *buffer; char *buffer;
if (request_code == trc_db_stats) { if (request_code == trc_db_stats) {
if (tanabata == NULL) { if (*request_db_name != 0) {
return 1; if (tanabata == NULL) {
sprintf(*response, "{\"status\":true,\"loaded\":false}");
return 0;
}
sprintf(*response, "{"
"\"status\":true,\"loaded\":true,\"unsaved\":%s,"
"\"sasahyou_cts\":0x%lx,\"sasahyou_mts\":0x%lx,\"sasahyou_size\":0x%lx,\"sasahyou_holes\":0x%lx,"
"\"sappyou_cts\":0x%lx,\"sappyou_mts\":0x%lx,\"sappyou_size\":0x%lx,\"sappyou_holes\":0x%lx,"
"\"shoppyou_cts\":0x%lx,\"shoppyou_mts\":0x%lx,\"shoppyou_size\":0x%lx,\"shoppyou_holes\":0x%lx"
"}",
(tanabata->sasahyou_mod != tanabata->sasahyou.modified_ts ||
tanabata->sappyou_mod != tanabata->sappyou.modified_ts ||
tanabata->shoppyou_mod != tanabata->shoppyou.modified_ts) ? "true" : "false",
tanabata->sasahyou.created_ts, tanabata->sasahyou.modified_ts, tanabata->sasahyou.size,
tanabata->sasahyou.hole_cnt,
tanabata->sappyou.created_ts, tanabata->sappyou.modified_ts, tanabata->sappyou.size,
tanabata->sappyou.hole_cnt,
tanabata->shoppyou.created_ts, tanabata->shoppyou.modified_ts, tanabata->shoppyou.size,
tanabata->shoppyou.hole_cnt);
return 0;
} }
sprintf(*response, "{" sprintf(*response, "{\"status\":true,\"tdb_list\":[");
"\"status\":true,\"unsaved\":%s," size_t resp_size = BUFSIZ;
"\"sasahyou_cts\":0x%lx,\"sasahyou_mts\":0x%lx,\"sasahyou_size\":0x%lx,\"sasahyou_holes\":0x%lx," buffer = malloc(BUFSIZ);
"\"sappyou_cts\":0x%lx,\"sappyou_mts\":0x%lx,\"sappyou_size\":0x%lx,\"sappyou_holes\":0x%lx," TDB *temp = db_list;
"\"shoppyou_cts\":0x%lx,\"shoppyou_mts\":0x%lx,\"shoppyou_size\":0x%lx,\"shoppyou_holes\":0x%lx" for (uint16_t i = 0; i < db_count; i++, temp++) {
"}", if (temp->database == NULL) {
(tanabata->sasahyou_mod != tanabata->sasahyou.modified_ts || sprintf(buffer, "{\"tdb_name\":\"%s\",\"loaded\":false},", temp->name);
tanabata->sappyou_mod != tanabata->sappyou.modified_ts || } else {
tanabata->shoppyou_mod != tanabata->shoppyou.modified_ts) ? "true" : "false", tanabata = temp->database;
tanabata->sasahyou.created_ts, tanabata->sasahyou.modified_ts, tanabata->sasahyou.size, sprintf(buffer, "{"
tanabata->sasahyou.hole_cnt, "\"loaded\":true,\"unsaved\":%s,"
tanabata->sappyou.created_ts, tanabata->sappyou.modified_ts, tanabata->sappyou.size, "\"sasahyou_cts\":0x%lx,\"sasahyou_mts\":0x%lx,\"sasahyou_size\":0x%lx,\"sasahyou_holes\":0x%lx,"
tanabata->sappyou.hole_cnt, "\"sappyou_cts\":0x%lx,\"sappyou_mts\":0x%lx,\"sappyou_size\":0x%lx,\"sappyou_holes\":0x%lx,"
tanabata->shoppyou.created_ts, tanabata->shoppyou.modified_ts, tanabata->shoppyou.size, "\"shoppyou_cts\":0x%lx,\"shoppyou_mts\":0x%lx,\"shoppyou_size\":0x%lx,\"shoppyou_holes\":0x%lx"
tanabata->shoppyou.hole_cnt); "},",
(tanabata->sasahyou_mod != tanabata->sasahyou.modified_ts ||
tanabata->sappyou_mod != tanabata->sappyou.modified_ts ||
tanabata->shoppyou_mod != tanabata->shoppyou.modified_ts) ? "true" : "false",
tanabata->sasahyou.created_ts, tanabata->sasahyou.modified_ts, tanabata->sasahyou.size,
tanabata->sasahyou.hole_cnt,
tanabata->sappyou.created_ts, tanabata->sappyou.modified_ts, tanabata->sappyou.size,
tanabata->sappyou.hole_cnt,
tanabata->shoppyou.created_ts, tanabata->shoppyou.modified_ts, tanabata->shoppyou.size,
tanabata->shoppyou.hole_cnt);
}
if (strlen(*response) + strlen(buffer) >= resp_size) {
resp_size += BUFSIZ;
*response = realloc(*response, resp_size);
}
strcat(*response, buffer);
}
sprintf(buffer, "]}");
if (strlen(*response) + 3 >= resp_size) {
*response = realloc(*response, resp_size + 3);
}
strcat(*response, buffer);
free(buffer);
return 0; return 0;
} }
if (request_code == trc_db_init) { if (request_code == trc_db_init) {