]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Feature] Milter headers: support adding/removing arbitrary headers from config
authorAndrew Lewis <nerf@judo.za.org>
Sun, 9 Jul 2017 10:21:31 +0000 (12:21 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Mon, 28 Aug 2017 12:02:41 +0000 (14:02 +0200)
src/plugins/lua/milter_headers.lua

index d5b4c49094fd56d39ca1402bb99bcb6ca52bb265..f3d698c24ce883ff6f89827d24d5efa0f33b3e75 100644 (file)
@@ -35,6 +35,13 @@ local settings = {
   authenticated_headers = {},
   extended_headers_rcpt = {},
   routines = {
+    ['remove-headers'] = {
+      headers = {},
+    },
+    ['add-headers'] = {
+      headers = {},
+      remove = 1,
+    },
     ['remove-header'] = {
       remove = 1,
     },
@@ -201,6 +208,21 @@ local function milter_headers(task)
     end
   end
 
+  routines['remove-headers'] = function()
+    if skip_wanted('remove-headers') then return end
+    for h, r in pairs(settings.routines['remove-headers'].headers) do
+      remove[h] = r
+    end
+  end
+
+  routines['add-headers'] = function()
+    if skip_wanted('add-headers') then return end
+    for h, r in pairs(settings.routines['add-headers'].headers) do
+      add[h] = r
+      remove[h] = settings.routines['add-headers'].remove
+    end
+  end
+
   routines['x-rspamd-server'] = function()
     if skip_wanted('x-rspamd-server') then return end
     if settings.routines['x-rspamd-server'].remove then