gint parser_to_ref;
gboolean local;
gboolean self_scan;
+ gboolean compress;
};
struct rspamd_http_mirror {
gint parser_from_ref;
gint parser_to_ref;
gboolean local;
+ gboolean compress;
};
static const guint64 rspamd_rspamd_proxy_magic = 0xcdeb4fd1fc351980ULL;
ctx->has_self_scan = TRUE;
}
+ elt = ucl_object_lookup_any (obj, "compress", "compression", NULL);
+ if (elt && ucl_object_toboolean (elt)) {
+ up->compress = TRUE;
+ }
+
elt = ucl_object_lookup (obj, "hosts");
if (elt == NULL && !up->self_scan) {
up->local = TRUE;
}
+ elt = ucl_object_lookup_any (obj, "compress", "compression", NULL);
+ if (elt && ucl_object_toboolean (elt)) {
+ up->compress = TRUE;
+ }
+
elt = ucl_object_lookup (obj, "timeout");
if (elt) {
ucl_object_todouble_safe (elt, &up->timeout);
session = bk_conn->s;
+ proxy_request_decompress (msg);
+
if (!proxy_backend_parse_results (session, bk_conn, session->ctx->lua_state,
bk_conn->parser_from_ref, msg->body_buf.begin, msg->body_buf.len)) {
msg_warn_session ("cannot parse results from the mirror backend %s:%s",
rspamd_http_message_set_body (msg, session->map, session->map_len);
}
+ if (m->compress) {
+ proxy_request_compress (msg);
+ }
+
rspamd_http_connection_write_message (bk_conn->backend_conn,
msg, NULL, NULL, bk_conn,
bk_conn->backend_sock,
session = bk_conn->s;
rspamd_http_connection_steal_msg (session->master_conn->backend_conn);
+ proxy_request_decompress (msg);
rspamd_http_message_remove_header (msg, "Content-Length");
rspamd_http_message_remove_header (msg, "Key");
session->map, session->map_len);
}
+ if (backend->compress) {
+ proxy_request_compress (msg);
+ }
+
rspamd_http_connection_write_message (
session->master_conn->backend_conn,
msg, NULL, NULL, session->master_conn,