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");
}
}
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);