aboutsummaryrefslogtreecommitdiffstats
path: root/src/cfg_xml.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2010-07-15 15:08:31 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2010-07-15 15:08:31 +0400
commit99cd57ba7f0e6b9178ccacc6987b0854ed137d83 (patch)
tree1e1cb2993f5b8f1965925180be43f24b31477902 /src/cfg_xml.c
parent44e9a2cda785d6630b30c90707b7a00deb6b2b35 (diff)
downloadrspamd-99cd57ba7f0e6b9178ccacc6987b0854ed137d83.tar.gz
rspamd-99cd57ba7f0e6b9178ccacc6987b0854ed137d83.zip
* Add ability to make views by recipient
Diffstat (limited to 'src/cfg_xml.c')
-rw-r--r--src/cfg_xml.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/cfg_xml.c b/src/cfg_xml.c
index 030ec9b34..aeb64d1ae 100644
--- a/src/cfg_xml.c
+++ b/src/cfg_xml.c
@@ -382,6 +382,12 @@ static struct xml_parser_rule grammar[] = {
NULL
},
{
+ "rcpt",
+ handle_view_rcpt,
+ 0,
+ NULL
+ },
+ {
"symbols",
handle_view_symbols,
0,
@@ -913,19 +919,31 @@ handle_view_from (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHas
struct rspamd_view *view = ctx->section_pointer;
if (!add_view_from (view, data)) {
- msg_err ("invalid from line in view definition: ip = '%s'", data);
+ msg_err ("invalid from line in view definition: from = '%s'", data);
return FALSE;
}
return TRUE;
}
gboolean
+handle_view_rcpt (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, int offset)
+{
+ struct rspamd_view *view = ctx->section_pointer;
+
+ if (!add_view_rcpt (view, data)) {
+ msg_err ("invalid from line in view definition: rcpt = '%s'", data);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+gboolean
handle_view_symbols (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, int offset)
{
struct rspamd_view *view = ctx->section_pointer;
if (!add_view_symbols (view, data)) {
- msg_err ("invalid symbols line in view definition: ip = '%s'", data);
+ msg_err ("invalid symbols line in view definition: symbols = '%s'", data);
return FALSE;
}
cfg->domain_settings_str = memory_pool_strdup (cfg->cfg_pool, data);