From: Vsevolod Stakhov Date: Mon, 4 Aug 2025 19:46:33 +0000 (+0100) Subject: [Minor] More cleanups for compression stuff X-Git-Tag: 3.13.0~37^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dc23bd1b2036bf2feb53ca00a54811f473b2a561;p=thirdparty%2Frspamd.git [Minor] More cleanups for compression stuff --- diff --git a/src/rspamd_proxy.c b/src/rspamd_proxy.c index d38594eff3..be5e162c70 100644 --- a/src/rspamd_proxy.c +++ b/src/rspamd_proxy.c @@ -1335,6 +1335,7 @@ proxy_request_compress(struct rspamd_http_message *msg) ZSTD_freeCCtx(zctx); rspamd_http_message_set_body_from_fstring_steal(msg, body); rspamd_http_message_add_header(msg, COMPRESSION_HEADER, "zstd"); + rspamd_http_message_add_header(msg, CONTENT_ENCODING_HEADER, "zstd"); } } @@ -2146,6 +2147,12 @@ proxy_backend_master_finish_handler(struct rspamd_http_connection *conn, rspamd_http_message_remove_header(msg, "Content-Type"); } + /* Check if client supports compression and compress response if needed */ + const rspamd_ftok_t *accept_encoding = rspamd_http_message_find_header(session->client_message, "Accept-Encoding"); + if (accept_encoding && rspamd_substring_search_caseless(accept_encoding->begin, accept_encoding->len, "zstd", 4) != -1) { + proxy_request_compress(msg); + } + rspamd_http_connection_write_message(session->client_conn, msg, NULL, passed_ct, session, bk_conn->timeout);