]> source.dussan.org Git - rspamd.git/commitdiff
Add local_addrs/local_networks option
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 3 Jan 2016 17:13:14 +0000 (17:13 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 3 Jan 2016 17:13:24 +0000 (17:13 +0000)
conf/options.inc
doc/markdown/configuration/options.md
src/libserver/cfg_rcl.c
src/plugins/spf.c

index 29e737712cb14ce8f5ca87b119cd49c9f830fb26..44ba68bd666cfb105dbd7ea42f3cee7a5cb88c72 100644 (file)
@@ -32,3 +32,6 @@ allow_raw_input = true;
 # Start ignore words when reaching the following limit, so the total
 # amount of words processed will not be *LIKELY more than the twice of that limit
 words_decay = 200;
+
+# Local networks
+local_addrs = "192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/8";
index 44b9abe2b76f1b870198dacae249d307e47009c1..9d11a200743c8ca2fc49fb3565fbf9002e83bf59 100644 (file)
@@ -54,6 +54,7 @@ symbol).
 * `cores_dir`: directory where rspamd is intended to drop core files
 * `max_cores_size`: maximum total size of core files that are placed in `cores_dir`
 * `max_cores_count`: maximum number of files in `cores_dir`
+* `local_addrs` or `local_networks`: map or list of ip networks used as local, so certain checks are skipped for them (e.g. SPF checks)
 
 ## DNS options
 
index ff349e75e9486efdf753529ebc6a21e1f43b7cc1..c0daef15edf5429050d1fa8b5cf05117e2ad0fea 100644 (file)
@@ -1604,6 +1604,18 @@ rspamd_rcl_config_init (struct rspamd_config *cfg)
                        G_STRUCT_OFFSET (struct rspamd_config, max_cores_count),
                        RSPAMD_CL_FLAG_INT_SIZE,
                        "Limit of files count in `cores_dir`");
+       rspamd_rcl_add_default_handler (sub,
+                       "local_addrs",
+                       rspamd_rcl_parse_struct_string,
+                       G_STRUCT_OFFSET (struct rspamd_config, local_addrs),
+                       0,
+                       "Use the specified addresses as local ones");
+       rspamd_rcl_add_default_handler (sub,
+                       "local_networks",
+                       rspamd_rcl_parse_struct_string,
+                       G_STRUCT_OFFSET (struct rspamd_config, local_addrs),
+                       0,
+                       "Use the specified addresses as local ones (alias for `local_addrs`)");
 
        /* New DNS configuration */
        ssub = rspamd_rcl_add_section_doc (&sub->subsections, "dns", NULL, NULL,
index c54c2721568be6571f512d34cf21918745c41c23..ac2f1ddb45ec008ae147f8ff08102819b855ce8c 100644 (file)
@@ -358,7 +358,7 @@ spf_symbol_callback (struct rspamd_task *task, void *unused)
        }
 
        if (task->user != NULL || rspamd_inet_address_is_local (task->from_addr)) {
-               msg_info_task ("skip SPF checks for local and authorized users");
+               msg_info_task ("skip SPF checks for local networks and authorized users");
                return;
        }