diff options
-rw-r--r-- | src/libserver/cfg_rcl.c | 78 | ||||
-rw-r--r-- | src/libserver/cfg_rcl.h | 10 | ||||
-rw-r--r-- | src/plugins/dkim_check.c | 120 | ||||
-rw-r--r-- | src/plugins/fuzzy_check.c | 58 | ||||
-rw-r--r-- | src/plugins/regexp.c | 12 | ||||
-rw-r--r-- | src/plugins/spf.c | 64 | ||||
-rw-r--r-- | src/plugins/surbl.c | 150 |
7 files changed, 406 insertions, 86 deletions
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index c0daef15e..d17fa4b7b 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1235,6 +1235,8 @@ rspamd_rcl_add_section (struct rspamd_rcl_section **top, name, type, NULL, + 0, + NULL, 0); } @@ -1258,8 +1260,14 @@ rspamd_rcl_add_section_doc (struct rspamd_rcl_section **top, new->type = type; new->strict_type = strict_type; - new->doc_ref = rspamd_rcl_add_doc_obj (doc_target, doc_string, - name, type, NULL, 0); + new->doc_ref = rspamd_rcl_add_doc_obj (doc_target, + doc_string, + name, + type, + NULL, + 0, + NULL, + 0); HASH_ADD_KEYPTR (hh, *top, new->name, strlen (new->name), new); return new; @@ -1282,8 +1290,14 @@ rspamd_rcl_add_default_handler (struct rspamd_rcl_section *section, new->pd.flags = flags; if (section->doc_ref != NULL) { - rspamd_rcl_add_doc_obj (section->doc_ref, doc_string, name, UCL_NULL, - handler, flags); + rspamd_rcl_add_doc_obj (section->doc_ref, + doc_string, + name, + UCL_NULL, + handler, + flags, + NULL, + 0); } HASH_ADD_KEYPTR (hh, section->default_parser, new->key, strlen ( @@ -2812,8 +2826,14 @@ rspamd_rcl_register_worker_option (struct rspamd_config *cfg, doc_target = doc_obj; } - rspamd_rcl_add_doc_obj ((ucl_object_t *)doc_target, doc_string, name, UCL_NULL, - handler, flags); + rspamd_rcl_add_doc_obj ((ucl_object_t *) doc_target, + doc_string, + name, + UCL_NULL, + handler, + flags, + NULL, + 0); } @@ -3044,7 +3064,9 @@ rspamd_rcl_add_doc_obj (ucl_object_t *doc_target, const char *doc_name, ucl_type_t type, rspamd_rcl_default_handler_t handler, - gint flags) + gint flags, + const char *default_value, + gboolean required) { ucl_object_t *doc_obj; @@ -3056,7 +3078,8 @@ rspamd_rcl_add_doc_obj (ucl_object_t *doc_target, /* Insert doc string itself */ if (doc_string) { - ucl_object_insert_key (doc_obj, ucl_object_fromstring (doc_string), + ucl_object_insert_key (doc_obj, + ucl_object_fromstring_common (doc_string, 0, 0), "data", 0, false); } else { @@ -3071,6 +3094,17 @@ rspamd_rcl_add_doc_obj (ucl_object_t *doc_target, } rspamd_rcl_doc_obj_from_handler (doc_obj, handler, flags); + + ucl_object_insert_key (doc_obj, + ucl_object_frombool (required), + "required", 0, false); + + if (default_value) { + ucl_object_insert_key (doc_obj, + ucl_object_fromstring_common (default_value, 0, 0), + "default", 0, false); + } + ucl_object_insert_key (doc_target, doc_obj, doc_name, 0, true); return doc_obj; @@ -3083,7 +3117,9 @@ rspamd_rcl_add_doc_by_path (struct rspamd_config *cfg, const char *doc_name, ucl_type_t type, rspamd_rcl_default_handler_t handler, - gint flags) + gint flags, + const char *default_value, + gboolean required) { const ucl_object_t *found, *cur; ucl_object_t *obj; @@ -3092,14 +3128,26 @@ rspamd_rcl_add_doc_by_path (struct rspamd_config *cfg, if (doc_path == NULL) { /* Assume top object */ return rspamd_rcl_add_doc_obj (cfg->doc_strings, - doc_string, doc_name, type, handler, flags); + doc_string, + doc_name, + type, + handler, + flags, + default_value, + required); } else { found = ucl_lookup_path (cfg->doc_strings, doc_path); if (found != NULL) { return rspamd_rcl_add_doc_obj ((ucl_object_t *) found, - doc_string, doc_name, type, handler, flags); + doc_string, + doc_name, + type, + handler, + flags, + default_value, + required); } /* Otherwise we need to insert all components of the path */ @@ -3131,5 +3179,11 @@ rspamd_rcl_add_doc_by_path (struct rspamd_config *cfg, } return rspamd_rcl_add_doc_obj ((ucl_object_t *) cur, - doc_string, doc_name, type, handler, flags); + doc_string, + doc_name, + type, + handler, + flags, + default_value, + required); } diff --git a/src/libserver/cfg_rcl.h b/src/libserver/cfg_rcl.h index b114e765c..352ca95de 100644 --- a/src/libserver/cfg_rcl.h +++ b/src/libserver/cfg_rcl.h @@ -352,12 +352,14 @@ void rspamd_rcl_register_worker_parser (struct rspamd_config *cfg, gint type, * @param doc_target target object where to insert documentation (top object is used if this is NULL) * @param doc_object documentation object to insert */ -ucl_object_t* rspamd_rcl_add_doc_obj (ucl_object_t *doc_target, +ucl_object_t *rspamd_rcl_add_doc_obj (ucl_object_t *doc_target, const char *doc_string, const char *doc_name, ucl_type_t type, rspamd_rcl_default_handler_t handler, - gint flags); + gint flags, + const char *default_value, + gboolean required); /** * Adds new documentation option specified by path `doc_path` that should be @@ -369,5 +371,7 @@ ucl_object_t *rspamd_rcl_add_doc_by_path (struct rspamd_config *cfg, const char *doc_name, ucl_type_t type, rspamd_rcl_default_handler_t handler, - gint flags); + gint flags, + const char *default_value, + gboolean required); #endif /* CFG_RCL_H_ */ diff --git a/src/plugins/dkim_check.c b/src/plugins/dkim_check.c index 8a3546a10..0e09bacd6 100644 --- a/src/plugins/dkim_check.c +++ b/src/plugins/dkim_check.c @@ -112,42 +112,114 @@ dkim_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) *ctx = (struct module_ctx *)dkim_module_ctx; - rspamd_rcl_add_doc_by_path (cfg, NULL, + rspamd_rcl_add_doc_by_path (cfg, + NULL, "DKIM check plugin", - "dkim", UCL_OBJECT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "dkim", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Map of IP addresses that should be excluded from DKIM checks", - "whitelist", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "whitelist", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Symbol that is added if DKIM check is successful", - "symbol_allow", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "symbol_allow", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Symbol that is added if DKIM check is unsuccessful", - "symbol_reject", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "symbol_reject", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Symbol that is added if DKIM check can't be completed (e.g. DNS failure)", - "symbol_tempfail", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "symbol_tempfail", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Size of DKIM keys cache", - "dkim_cache_size", UCL_INT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "dkim_cache_size", + UCL_INT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Allow this time difference when checking DKIM signature time validity", - "time_jitter", UCL_TIME, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "time_jitter", + UCL_TIME, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Domains to check DKIM for (check all domains if this option is empty)", - "domains", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "domains", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Map of domains that are treated as 'trusted' meaning that DKIM policy failure has more significant score", - "trusted_domains", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "trusted_domains", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Multiply dkim score by this factor for trusted domains", - "strict_multiplier", UCL_FLOAT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "strict_multiplier", + UCL_FLOAT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Check DKIM policies merely for `trusted_domains`", - "trusted_only", UCL_BOOLEAN, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "dkim", + "trusted_only", + UCL_BOOLEAN, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "dkim", "Do not check messages with multiple DKIM signatures", - "skip_multi", UCL_BOOLEAN, NULL, 0); + "skip_multi", + UCL_BOOLEAN, + NULL, + 0, + NULL, + 0); return 0; } diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index eb1e97786..ea94021ed 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -525,9 +525,15 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) *ctx = (struct module_ctx *)fuzzy_module_ctx; - rspamd_rcl_add_doc_by_path (cfg, NULL, + rspamd_rcl_add_doc_by_path (cfg, + NULL, "Fuzzy check plugin", - "fuzzy_check", UCL_OBJECT, NULL, 0); + "fuzzy_check", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -535,6 +541,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "symbol", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -542,6 +550,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "min_length", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -549,6 +559,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "min_bytes", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -556,6 +568,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "min_height", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -563,6 +577,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "min_width", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -570,6 +586,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "timeout", UCL_TIME, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -577,6 +595,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "retransmits", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check", @@ -584,6 +604,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "whitelist", UCL_STRING, NULL, + 0, + NULL, 0); /* Rules doc strings */ rspamd_rcl_add_doc_by_path (cfg, @@ -592,6 +614,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "rule", UCL_OBJECT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -599,6 +623,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "headers", UCL_ARRAY, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -606,6 +632,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "mime_types", UCL_ARRAY, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -613,6 +641,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "max_score", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -620,6 +650,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "servers", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -627,6 +659,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "read_only", UCL_BOOLEAN, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -634,6 +668,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "skip_unknown", UCL_BOOLEAN, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -641,6 +677,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "symbol", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -648,6 +686,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "encryption_key", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -655,6 +695,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "fuzzy_key", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -662,14 +704,18 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "fuzzy_shingles_key", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", "Lua script that returns boolean function to check if this task " - "should be considered when learning fuzzy storage", + "should be considered when learning fuzzy storage", "learn_condition", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule", @@ -677,6 +723,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "fuzzy_map", UCL_OBJECT, NULL, + 0, + NULL, 0); /* Fuzzy map doc strings */ rspamd_rcl_add_doc_by_path (cfg, @@ -685,6 +733,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "max_score", UCL_INT, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "fuzzy_check.rule.fuzzy_map", @@ -692,6 +742,8 @@ fuzzy_check_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "flag", UCL_INT, NULL, + 0, + NULL, 0); return 0; diff --git a/src/plugins/regexp.c b/src/plugins/regexp.c index ddabe672e..566136bf0 100644 --- a/src/plugins/regexp.c +++ b/src/plugins/regexp.c @@ -102,9 +102,15 @@ regexp_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) *ctx = (struct module_ctx *)regexp_module_ctx; - rspamd_rcl_add_doc_by_path (cfg, NULL, + rspamd_rcl_add_doc_by_path (cfg, + NULL, "Regular expressions rules plugin", - "regexp", UCL_OBJECT, NULL, 0); + "regexp", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); rspamd_rcl_add_doc_by_path (cfg, "regexp", @@ -112,6 +118,8 @@ regexp_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "max_size", UCL_INT, NULL, + 0, + NULL, 0); return 0; diff --git a/src/plugins/spf.c b/src/plugins/spf.c index 200270b11..d7f1031c7 100644 --- a/src/plugins/spf.c +++ b/src/plugins/spf.c @@ -97,25 +97,51 @@ spf_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) *ctx = (struct module_ctx *)spf_module_ctx; - rspamd_rcl_add_doc_by_path (cfg, NULL, + rspamd_rcl_add_doc_by_path (cfg, + NULL, "SPF check plugin", - "spf", UCL_OBJECT, NULL, 0); + "spf", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); - rspamd_rcl_add_doc_by_path (cfg, "spf", + rspamd_rcl_add_doc_by_path (cfg, + "spf", "Map of IP addresses that should be excluded from SPF checks (in addition to `local_networks`)", - "whitelist", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "spf", + "whitelist", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "spf", "Symbol that is added if SPF check is successful", - "symbol_allow", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "spf", + "symbol_allow", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "spf", "Symbol that is added if SPF policy is set to 'deny'", - "symbol_fail", UCL_STRING, NULL, 0); + "symbol_fail", + UCL_STRING, + NULL, + 0, + NULL, + 0); rspamd_rcl_add_doc_by_path (cfg, "spf", "Symbol that is added if SPF policy is set to 'undefined'", "symbol_softfail", UCL_STRING, NULL, + 0, + NULL, 0); rspamd_rcl_add_doc_by_path (cfg, "spf", @@ -123,13 +149,27 @@ spf_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) "symbol_neutral", UCL_STRING, NULL, + 0, + NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "spf", + rspamd_rcl_add_doc_by_path (cfg, + "spf", "Size of SPF parsed records cache", - "spf_cache_size", UCL_INT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "spf", + "spf_cache_size", + UCL_INT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "spf", "Maximum lifetime for the elements in the SPF cache", - "spf_cache_expire", UCL_TIME, NULL, 0); + "spf_cache_expire", + UCL_TIME, + NULL, + 0, + NULL, + 0); return 0; } diff --git a/src/plugins/surbl.c b/src/plugins/surbl.c index 1c5e0625b..7572a0df8 100644 --- a/src/plugins/surbl.c +++ b/src/plugins/surbl.c @@ -292,52 +292,142 @@ surbl_module_init (struct rspamd_config *cfg, struct module_ctx **ctx) *ctx = (struct module_ctx *)surbl_module_ctx; - rspamd_rcl_add_doc_by_path (cfg, NULL, + rspamd_rcl_add_doc_by_path (cfg, + NULL, "URL blacklist plugin", - "surbl", UCL_OBJECT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "surbl", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "List of redirector servers", - "redirector", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "redirector", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Map of domains that should be checked with redirector", - "redirector_hosts_map", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "redirector_hosts_map", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Connect timeout for redirector", - "redirector_connect_timeout", UCL_TIME, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "redirector_connect_timeout", + UCL_TIME, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Read timeout for redirector", - "redirector_read_timeout", UCL_TIME, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "redirector_read_timeout", + UCL_TIME, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Maximum number of URLs to process per message", - "max_urls", UCL_INT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "max_urls", + UCL_INT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Rules for TLD composition", - "exceptions", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "exceptions", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "Map of whitelisted domains", - "whitelist", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl", + "whitelist", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl", "URL blacklist rule", - "rule", UCL_OBJECT, NULL, 0); + "rule", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); /* Rules doc strings */ - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Name of DNS black list (e.g. `multi.surbl.com`)", - "suffix", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + "suffix", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Symbol to insert (if no bits or suffixes are defined)", - "symbol", UCL_STRING, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + "symbol", + UCL_STRING, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Do not try to check URLs with IP address instead of hostname", - "no_ip", UCL_BOOLEAN, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + "no_ip", + UCL_BOOLEAN, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Resolve URL host and then check against the specified suffix with reversed IP octets", - "resolve_ip", UCL_BOOLEAN, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + "resolve_ip", + UCL_BOOLEAN, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Parse IP bits in DNS reply, the content is 'symbol = <bit>'", - "bits", UCL_OBJECT, NULL, 0); - rspamd_rcl_add_doc_by_path (cfg, "surbl.rule", + "bits", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); + rspamd_rcl_add_doc_by_path (cfg, + "surbl.rule", "Parse IP addresses in DNS reply, the content is 'symbol = address'", - "ips", UCL_OBJECT, NULL, 0); + "ips", + UCL_OBJECT, + NULL, + 0, + NULL, + 0); return 0; } |