summaryrefslogtreecommitdiff
path: root/ot_http.c
diff options
context:
space:
mode:
authorDirk Engling <erdgeist@erdgeist.org>2024-04-18 14:54:34 +0200
committerDirk Engling <erdgeist@erdgeist.org>2024-04-18 14:54:34 +0200
commit33bd2c9094e7f90a62cb59cdf5cf670ac58d5308 (patch)
tree9b5825b65a655953a605c3cc7525eb9456e686e6 /ot_http.c
parent160ba08074827f0ddecaf611dd9f9b15593be9c1 (diff)
Add support for zstd
Diffstat (limited to 'ot_http.c')
-rw-r--r--ot_http.c35
1 files changed, 26 insertions, 9 deletions
diff --git a/ot_http.c b/ot_http.c
index cd2dfc1..af3f210 100644
--- a/ot_http.c
+++ b/ot_http.c
@@ -159,7 +159,9 @@ ssize_t http_sendiovecdata(const int64 sock, struct ot_workstruct *ws, int iovec
159 159
160 if (iovec_entries) { 160 if (iovec_entries) {
161 161
162 if (cookie->flag & STRUCT_HTTP_FLAG_GZIP) 162 if (cookie->flag & STRUCT_HTTP_FLAG_ZSTD)
163 encoding = "Content-Encoding: zstd\r\n";
164 else if (cookie->flag & STRUCT_HTTP_FLAG_GZIP)
163 encoding = "Content-Encoding: gzip\r\n"; 165 encoding = "Content-Encoding: gzip\r\n";
164 else if (cookie->flag & STRUCT_HTTP_FLAG_BZIP2) 166 else if (cookie->flag & STRUCT_HTTP_FLAG_BZIP2)
165 encoding = "Content-Encoding: bzip2\r\n"; 167 encoding = "Content-Encoding: bzip2\r\n";
@@ -369,19 +371,34 @@ static ssize_t http_handle_fullscrape(const int64 sock, struct ot_workstruct *ws
369 } 371 }
370#endif 372#endif
371 373
372#ifdef WANT_COMPRESSION_GZIP 374
375#if defined(WANT_COMPRESSION_GZIP) || defined(WANT_COMPRESSION_ZSTD)
373 ws->request[ws->request_size - 1] = 0; 376 ws->request[ws->request_size - 1] = 0;
374#ifndef WANT_COMPRESSION_GZIP_ALWAYS 377#ifdef WANT_COMPRESSION_GZIP
375 if (strstr(ws->request, "gzip")) { 378 if (strstr(ws->request, "gzip")) {
376#endif
377 cookie->flag |= STRUCT_HTTP_FLAG_GZIP; 379 cookie->flag |= STRUCT_HTTP_FLAG_GZIP;
378 format = TASK_FLAG_GZIP; 380 format |= TASK_FLAG_GZIP;
379 stats_issue_event(EVENT_FULLSCRAPE_REQUEST_GZIP, 0, (uintptr_t)cookie->ip); 381 }
380#ifndef WANT_COMPRESSION_GZIP_ALWAYS
381 } else
382#endif 382#endif
383#ifdef WANT_COMPRESSION_ZSTD
384 if (strstr(ws->request, "zstd")) {
385 cookie->flag |= STRUCT_HTTP_FLAG_ZSTD;
386 format |= TASK_FLAG_ZSTD;
387 }
388#endif
389
390#if defined(WANT_COMPRESSION_ZSTD) && defined(WANT_COMPRESSION_ZSTD_ALWAYS)
391 cookie->flag |= STRUCT_HTTP_FLAG_ZSTD;
392 format |= TASK_FLAG_ZSTD;
383#endif 393#endif
384 stats_issue_event(EVENT_FULLSCRAPE_REQUEST, 0, (uintptr_t)cookie->ip); 394
395#if defined(WANT_COMPRESSION_GZIP) && defined(WANT_COMPRESSION_GZIP_ALWAYS)
396 cookie->flag |= STRUCT_HTTP_FLAG_GZIP;
397 format |= TASK_FLAG_GZIP;
398#endif
399#endif
400
401 stats_issue_event(EVENT_FULLSCRAPE_REQUEST, 0, (uintptr_t)cookie->ip);
385 402
386#ifdef _DEBUG_HTTPERROR 403#ifdef _DEBUG_HTTPERROR
387 fprintf(stderr, "%s", ws->debugbuf); 404 fprintf(stderr, "%s", ws->debugbuf);