diff options
author | default <nobody@localhost> | 2022-09-24 12:22:17 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2022-09-24 12:22:17 +0200 |
commit | c3e19f1650ce37b9fe138e1de03083faa2d593a5 (patch) | |
tree | cb09d9e1f982ffebe394f8ce11756526e972d55d /httpd.c | |
parent | e9afd7cd13d2e11e8602f6508bbea5e76db7018e (diff) |
Added some aechiving.
Diffstat (limited to 'httpd.c')
-rw-r--r-- | httpd.c | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -169,6 +169,40 @@ void httpd_connection(int rs) fclose(f); + /* obsessive archiving */ + { + xs *date = xs_local_time("%Y%m%d%H%M%S"); + xs *dir = xs_fmt("%s/archive/%s", srv_basedir, date); + + if (mkdir(dir, 0755) != -1) { + xs *meta_fn = xs_fmt("%s/meta", dir); + xs *payload_fn = xs_fmt("%s/payload", dir); + xs *body_fn = xs_fmt("%s/body", dir); + + if ((f = fopen(meta_fn, "w")) != NULL) { + xs *j1 = xs_json_dumps_pp(req, 4); + xs *j2 = xs_json_dumps_pp(headers, 4); + + fprintf(f, "req: %s\n", j1); + fprintf(f, "p_size: %d\n", p_size); + fprintf(f, "status: %d\n", status); + fprintf(f, "response: %s\n", j2); + fprintf(f, "b_size: %d\n", b_size); + fclose(f); + } + + if (p_size && payload && (f = fopen(payload_fn, "w")) != NULL) { + fwrite(payload, p_size, 1, f); + fclose(f); + } + + if (b_size && body && (f = fopen(body_fn, "w")) != NULL) { + fwrite(body, p_size, 1, f); + fclose(f); + } + } + } + free(body); } |