From b9551af817e9a2ba90289d9c7de0e4a34f92287d Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Mon, 7 Jan 2019 01:11:20 -0500 Subject: Compress PNG data in image kcgi never enables compression for FastCGI. --- image.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'image.c') diff --git a/image.c b/image.c index de27349..80bb2de 100644 --- a/image.c +++ b/image.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef __FreeBSD__ #include @@ -158,7 +159,12 @@ static void render(FILE *stream, uint32_t tileX, uint32_t tileY) { } } - pngData(stream, (uint8_t *)data, sizeof(data)); + uLong zlen = compressBound(sizeof(data)); + uint8_t zdata[zlen]; + int error = compress(zdata, &zlen, (uint8_t *)data, sizeof(data)); + if (error) errx(EX_SOFTWARE, "compress: %d", error); + + pngDeflated(stream, zdata, (size_t)zlen); pngTail(stream); } @@ -229,6 +235,7 @@ static void worker(void) { if (error == KCGI_HUP) goto next; if (error) errkcgi(EX_IOERR, error, "khttp_head"); + // XXX: kcgi never enables compression for FastCGI. error = khttp_body(&req); if (error == KCGI_HUP) goto next; if (error) errkcgi(EX_IOERR, error, "khttp_body"); -- cgit 1.4.1