]> source.dussan.org Git - rspamd.git/commitdiff
Fix parsing emails with '_' symbol.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Thu, 17 Feb 2011 12:18:37 +0000 (15:18 +0300)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Thu, 17 Feb 2011 12:18:37 +0000 (15:18 +0300)
Fix adding metric symbol.

src/cfg_xml.c
src/lua/lua_cfg_file.c
src/url.c

index c1d0be95db10717948b39cf3e58919203bb2dbd6..885af3a57b238910bb1238ca08cb367fbfa3344f 100644 (file)
@@ -840,7 +840,9 @@ handle_metric_symbol (struct config_file *cfg, struct rspamd_xml_userdata *ctx,
        }
        else {
                /* Slow but keep start element of list in safe */
-               metric_list = g_list_append (metric_list, metric);
+               if (!g_list_find (metric_list, metric)) {
+                       metric_list = g_list_append (metric_list, metric);
+               }
        }
 
        return TRUE;
index e4f0734afcdfa092b6f9d64b8f1f18367d077afc..8c44ab80972ad87e9bda9e05daf4fca06086c24d 100644 (file)
@@ -174,7 +174,9 @@ lua_process_metric (lua_State *L, const gchar *name, struct config_file *cfg)
                        }
                        else {
                                /* Slow but keep start element of list in safe */
-                               metric_list = g_list_append (metric_list, metric);
+                               if (!g_list_find (metric_list, metric)) {
+                                       metric_list = g_list_append (metric_list, metric);
+                               }
                        }
                }
        }
index 3db6b05b69d5e1118fbfcc65cb562aee21bcc2a0..de916188f283d8c9ee96976f13c8c2678c41125f 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -1117,7 +1117,7 @@ url_email_start (const gchar *begin, const gchar *end, const gchar *pos, url_mat
        if (pos > begin && *pos == '@') {
                /* Try to extract it with username */
                p = pos - 1;
-               while (p > begin && (is_domain (*p) || *p == '.')) {
+               while (p > begin && (is_domain (*p) || *p == '.' || *p == '_')) {
                        p --;
                }
                if (!is_domain (*p)) {