commit c3e19f1650ce37b9fe138e1de03083faa2d593a5
parent e9afd7cd13d2e11e8602f6508bbea5e76db7018e
Author: default <nobody@localhost>
Date: Sat, 24 Sep 2022 12:22:17 +0200
Added some aechiving.
Diffstat:
M | httpd.c | | | 34 | ++++++++++++++++++++++++++++++++++ |
1 file changed, 34 insertions(+), 0 deletions(-)
diff --git a/httpd.c b/httpd.c
@@ -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);
}