From: Alexey Date: Wed, 5 Feb 2014 08:32:06 +0000 (-0800) Subject: Fix Hfilter for null text part X-Git-Tag: 0.6.9~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ee87a5b542a0e33a6e14e08f260c20daa58d116;p=thirdparty%2Frspamd.git Fix Hfilter for null text part Fix HFILTER_URL_ONELINE for null text part --- diff --git a/conf/lua/hfilter.lua b/conf/lua/hfilter.lua index 0c1d887e8d..60a5cd7227 100644 --- a/conf/lua/hfilter.lua +++ b/conf/lua/hfilter.lua @@ -251,39 +251,37 @@ local function hfilter(task) local parts = task:get_text_parts() if parts then --One text part-- - local total_parts_len = 0 - local text_parts_count = 0 - local selected_text_part = nil - for _,p in ipairs(parts) do - total_parts_len = total_parts_len + p:get_length() - - if not p:is_html() then - text_parts_count = text_parts_count + 1 - selected_text_part = p - end - end - if total_parts_len > 0 then - local urls = task:get_urls() - if urls then - local total_url_len = 0 - for _,url in ipairs(urls) do - total_url_len = total_url_len + url:get_length() - end - if total_url_len > 0 then - if total_url_len + 7 > total_parts_len then - task:insert_result('HFILTER_URL_ONLY', 1.00) - elseif text_parts_count == 1 and - selected_text_part:get_length() < 1024 then - -- We got a single text part with - -- the total length < 1024 symbols. - local part_text = trim1(selected_text_part:get_content()) - if not string.find(part_text, "\n") then - task:insert_result('HFILTER_URL_ONELINE', 1.00) - end - end - end - end - end + local total_parts_len = 0 + local text_parts_count = 0 + local selected_text_part = nil + for _,p in ipairs(parts) do + total_parts_len = total_parts_len + p:get_length() + + if not p:is_html() then + text_parts_count = text_parts_count + 1 + selected_text_part = p + end + end + if total_parts_len > 0 then + local urls = task:get_urls() + if urls then + local total_url_len = 0 + for _,url in ipairs(urls) do + total_url_len = total_url_len + url:get_length() + end + if total_url_len > 0 then + if total_url_len + 7 > total_parts_len then + task:insert_result('HFILTER_URL_ONLY', 1.00) + elseif text_parts_count == 1 and selected_text_part and selected_text_part:get_length() < 1024 then + -- We got a single text part with the total length < 1024 symbols. + local part_text = selected_text_part:get_content() + if part_text and not string.find(trim1(part_text), "\n") then + task:insert_result('HFILTER_URL_ONELINE', 1.00) + end + end + end + end + end end return false