summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2020-09-26 14:41:17 -0400
committerDrew DeVault <sir@cmpwn.com>2020-09-26 14:41:17 -0400
commit9bed26b8d91ff4f688c200ff8183e3134edf1d55 (patch)
tree2f7e9380a3668d3edf30236c9426824c808fcbf7
parentdfab99ace5f1193ca6df0ed7b704ea450a2fae95 (diff)
downloadgmnisrv-9bed26b8d91ff4f688c200ff8183e3134edf1d55.tar.gz
gmnisrv-9bed26b8d91ff4f688c200ff8183e3134edf1d55.tar.xz
gmnisrv-9bed26b8d91ff4f688c200ff8183e3134edf1d55.zip
Log response body size in bytes
-rw-r--r--include/server.h1
-rw-r--r--src/server.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/include/server.h b/include/server.h
index 0317de9..ef5781a 100644
--- a/include/server.h
+++ b/include/server.h
@@ -32,6 +32,7 @@ struct gmnisrv_client {
enum gemini_status status;
char *meta;
int bodyfd;
+ size_t bbytes;
struct gmnisrv_host *host;
char *path;
diff --git a/src/server.c b/src/server.c
index 7e28280..8ddc422 100644
--- a/src/server.c
+++ b/src/server.c
@@ -152,6 +152,7 @@ accept_client(struct gmnisrv_server *server, int fd)
client->pollfd = pollfd;
client->addrlen = addrlen;
client->server = server;
+ client->bodyfd = -1;
clock_gettime(CLOCK_MONOTONIC, &client->ctime);
memcpy(&client->addr, &addr, sizeof(addr));
@@ -181,7 +182,8 @@ disconnect_client(struct gmnisrv_server *server, struct gmnisrv_client *client)
clock_gettime(CLOCK_MONOTONIC, &now);
timespec_diff(&client->ctime, &now, &diff);
int ms = diff.tv_sec * 1000 + (int)(diff.tv_nsec / 1.0e6);
- client_log(&client->addr, "%dms %s %s %02d %s", ms,
+ client_log(&client->addr, "%3dms %5d %s %s %02d %s",
+ ms, client->bbytes,
client->host ? client->host->hostname : "(none)",
client->path ? client->path : "(none)",
(int)client->status, client->meta);
@@ -446,6 +448,7 @@ client_writable(struct gmnisrv_server *server, struct gmnisrv_client *client)
disconnect_client(server, client);
return;
}
+ client->bbytes += n;
client->bufln = n;
client->bufix = 0;
}