]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Allow to have specific settings for mirrored traffic
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 10 May 2016 08:27:22 +0000 (09:27 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 10 May 2016 08:27:22 +0000 (09:27 +0100)
src/rspamd_proxy.c

index 06192dafcc6407b1a3d72c851375653d8e100f49..32a2937e859877bddcd8ad5493683e5963e879a6 100644 (file)
@@ -69,6 +69,7 @@ struct rspamd_http_upstream {
 
 struct rspamd_http_mirror {
        gchar *name;
+       gchar *settings_id;
        struct upstream_list *u;
        struct rspamd_cryptobox_pubkey *key;
        gdouble prob;
@@ -362,6 +363,11 @@ rspamd_proxy_parse_mirror (rspamd_mempool_t *pool,
                lua_settop (L, 0);
        }
 
+       elt = ucl_object_lookup_any (obj, "settings", "settings_id", NULL);
+       if (elt && ucl_object_type (elt) == UCL_STRING) {
+               up->settings_id = g_strdup (ucl_object_tostring (elt));
+       }
+
        g_ptr_array_add (ctx->mirrors, up);
 
        return TRUE;
@@ -902,6 +908,11 @@ proxy_open_mirror_connections (struct rspamd_proxy_session *session)
                rspamd_http_message_remove_header (msg, "Content-Length");
                rspamd_http_message_remove_header (msg, "Key");
 
+               if (m->settings_id != NULL) {
+                       rspamd_http_message_remove_header (msg, "Settings-ID");
+                       rspamd_http_message_add_header (msg, "Settings-ID", m->settings_id);
+               }
+
                bk_conn->backend_conn = rspamd_http_connection_new (
                                NULL,
                                proxy_backend_mirror_error_handler,