You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by pa...@apache.org on 2006/10/29 02:59:37 UTC
svn commit: r468796 [2/2] - in /spamassassin/branches/check_plugin: ./
build/ build/automc/ debian/ lib/ lib/Mail/SpamAssassin/
lib/Mail/SpamAssassin/Bayes/ lib/Mail/SpamAssassin/BayesStore/
lib/Mail/SpamAssassin/Conf/ lib/Mail/SpamAssassin/Message/ li...
Modified: spamassassin/branches/check_plugin/rules/20_html_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/rules/20_html_tests.cf?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/rules/20_html_tests.cf (original)
+++ spamassassin/branches/check_plugin/rules/20_html_tests.cf Sat Oct 28 17:59:34 2006
@@ -36,14 +36,10 @@
describe HTML_SHORT_LINK_IMG_2 HTML is very short with a linked image
describe HTML_SHORT_LINK_IMG_3 HTML is very short with a linked image
-meta HTML_SHORT_COMMENT (__HTML_LENGTH_512 && __COMMENT_EXISTS)
-describe HTML_SHORT_COMMENT HTML is very short with HTML comments
meta HTML_SHORT_CENTER (__HTML_LENGTH_384 && __TAG_EXISTS_CENTER)
describe HTML_SHORT_CENTER HTML is very short with CENTER tag
-meta HTML_TITLE_LONG __HTML_TITLE_120 && !__MIME_ATTACHMENT
-describe HTML_TITLE_LONG HTML title is very long
meta HTML_TITLE_SUBJ_DIFF __HTML_TITLE_SUBJ_DIFF && !__MIME_ATTACHMENT
@@ -75,23 +71,11 @@
meta JS_FROMCHARCODE (__JS_FROMCHARCODE && __JS_DOCWRITE)
describe JS_FROMCHARCODE Document is built from a Javascript charcode array
-# A-Z, a-z, 0-9
-rawbody ENTITY_DEC_ALPHANUM /\&\#0*(?:4[89]|5[0-7]|6[5-9][78]\d|9[0789]|1[01]\d|12[012])\;/
-describe ENTITY_DEC_ALPHANUM HTML contains needlessly encoded characters
-
-# ! $ % ' ( ) , - . / : ; = ? @ _
# a good possible rule that may resurface
+# ! $ % ' ( ) , - . / : ; = ? @ _
#rawbody ENTITY_DEC_OTHER /\&\#0*(?:3[3679]|4[014567]|5[89]|6[134]|95)\;/
#describe ENTITY_DEC_OTHER HTML contains needlessly encoded punctuation
-# thanks to Bob Menschel for this one; bug 4116
-rawbody HTML_EHTML2 m'</html></html>'i
-describe HTML_EHTML2 HTML has doubled end HTML tag
-
-# bug 3070
-rawbody HTML_TINY_FONT /\<.*font\-size\:[ \"]*[01][^0-9]+.*\>/i
-describe HTML_TINY_FONT body contains 1 or 0-point font
-
body __HIGHBITS /(?:[\x80-\xff].?){4}/
# note: __HIGHBITS is used by HTML_CHARSET_FARAWAY
@@ -103,48 +87,6 @@
body HTML_MESSAGE eval:html_test('html')
describe HTML_MESSAGE HTML included in message
-# the HTML percentage range
-# should really be converted into a numeric function test
-body HTML_00_10 eval:html_range('ratio','0.00','0.10')
-body HTML_10_20 eval:html_range('ratio','0.10','0.20')
-body HTML_20_30 eval:html_range('ratio','0.20','0.30')
-body HTML_30_40 eval:html_range('ratio','0.30','0.40')
-body HTML_40_50 eval:html_range('ratio','0.40','0.50')
-body HTML_50_60 eval:html_range('ratio','0.50','0.60')
-body HTML_60_70 eval:html_range('ratio','0.60','0.70')
-body HTML_70_80 eval:html_range('ratio','0.70','0.80')
-body HTML_80_90 eval:html_range('ratio','0.80','0.90')
-body HTML_90_100 eval:html_range('ratio','0.90','1.00')
-describe HTML_00_10 Message is 0% to 10% HTML
-describe HTML_10_20 Message is 10% to 20% HTML
-describe HTML_20_30 Message is 20% to 30% HTML
-describe HTML_30_40 Message is 30% to 40% HTML
-describe HTML_40_50 Message is 40% to 50% HTML
-describe HTML_50_60 Message is 50% to 60% HTML
-describe HTML_60_70 Message is 60% to 70% HTML
-describe HTML_70_80 Message is 70% to 80% HTML
-describe HTML_80_90 Message is 80% to 90% HTML
-describe HTML_90_100 Message is 90% to 100% HTML
-
-# HTML shouting range
-# should really be converted into a numeric function test
-body HTML_SHOUTING3 eval:html_range('max_shouting','2','3')
-body HTML_SHOUTING4 eval:html_range('max_shouting','3','4')
-body HTML_SHOUTING5 eval:html_range('max_shouting','4','5')
-body HTML_SHOUTING6 eval:html_range('max_shouting','5','6')
-body HTML_SHOUTING7 eval:html_range('max_shouting','6','7')
-describe HTML_SHOUTING3 HTML has very strong "shouting" markup
-describe HTML_SHOUTING4 HTML has very strong "shouting" markup
-describe HTML_SHOUTING5 HTML has very strong "shouting" markup
-describe HTML_SHOUTING6 HTML has very strong "shouting" markup
-describe HTML_SHOUTING7 HTML has very strong "shouting" markup
-
-body HTML_TEXT_AFTER_HTML eval:html_test('text_after_html')
-describe HTML_TEXT_AFTER_HTML HTML contains text after HTML close tag
-
-body HTML_TEXT_AFTER_BODY eval:html_test('text_after_body')
-describe HTML_TEXT_AFTER_BODY HTML contains text after BODY close tag
-
# HTML comment tests
body HTML_COMMENT_SHORT eval:html_text_match('comment', '<!(?!-).{0,6}>')
describe HTML_COMMENT_SHORT HTML comment is very short
@@ -155,17 +97,11 @@
body HTML_EMBEDS eval:html_test('embeds')
describe HTML_EMBEDS HTML with embedded plugin object
-body HTML_EVENT_UNSAFE eval:html_test('html_event_unsafe')
-describe HTML_EVENT_UNSAFE HTML contains unsafe auto-executing code
body HTML_EXTRA_CLOSE eval:html_range('closed_extra_ratio', '0.09', 'inf')
describe HTML_EXTRA_CLOSE HTML contains far too many close tags
-body HTML_FONT_SIZE_TINY eval:html_eval('min_size', '< 1')
-describe HTML_FONT_SIZE_TINY HTML font size is tiny
-body HTML_FONT_SIZE_NONE eval:html_eval('min_size', '< 0')
-describe HTML_FONT_SIZE_NONE HTML font size is negative
body HTML_FONT_SIZE_LARGE eval:html_range('max_size', '5', '6')
describe HTML_FONT_SIZE_LARGE HTML font size is large
@@ -173,14 +109,8 @@
body HTML_FONT_SIZE_HUGE eval:html_range('max_size', '6', 'inf')
describe HTML_FONT_SIZE_HUGE HTML font size is huge
-body HTML_FONT_BIG eval:html_test('big_font')
-describe HTML_FONT_BIG HTML tag for a big font size
-body HTML_FONT_TINY eval:html_test('tiny_font')
-describe HTML_FONT_TINY HTML tag for a tiny font size
-body HTML_FONT_INVISIBLE eval:html_test('font_invisible')
-describe HTML_FONT_INVISIBLE HTML font color is same as background
body HTML_FONT_LOW_CONTRAST eval:html_test('font_low_contrast')
describe HTML_FONT_LOW_CONTRAST HTML font color similar to background
@@ -188,8 +118,6 @@
body HTML_FONT_FACE_BAD eval:html_test('font_face_bad')
describe HTML_FONT_FACE_BAD HTML font face is not a word
-body HTML_FONT_FACE_CAPS eval:html_test('font_face_caps')
-describe HTML_FONT_FACE_CAPS HTML font face has excess capital characters
body HTML_FORMACTION_MAILTO eval:html_test('form_action_mailto')
describe HTML_FORMACTION_MAILTO HTML includes a form which sends mail
@@ -214,56 +142,24 @@
# HTML_IMAGE_RATIO - more image area than text (ratio)
body HTML_IMAGE_RATIO_02 eval:html_image_ratio('0.000','0.002')
-body HTML_IMAGE_RATIO_04 eval:html_image_ratio('0.002','0.004')
-body HTML_IMAGE_RATIO_06 eval:html_image_ratio('0.004','0.006')
-body HTML_IMAGE_RATIO_08 eval:html_image_ratio('0.006','0.008')
describe HTML_IMAGE_RATIO_02 HTML has a low ratio of text to image area
-describe HTML_IMAGE_RATIO_04 HTML has a low ratio of text to image area
-describe HTML_IMAGE_RATIO_06 HTML has a low ratio of text to image area
-describe HTML_IMAGE_RATIO_08 HTML has a low ratio of text to image area
-
-body HTML_LINK_PUSH_HERE eval:html_text_match('anchor', '(?i)(?:push|go|cl[1l]ck)\s*(?:here|this)')
-describe HTML_LINK_PUSH_HERE HTML link text says "push here" or similar
-
-body HTML_LINK_OPT_OUT eval:html_text_match('anchor', '(?i)opt.?out')
-describe HTML_LINK_OPT_OUT HTML link text says "opt out" or similar
# HTML obfuscation
body HTML_OBFUSCATE_05_10 eval:html_range('obfuscation_ratio','.05','.1')
body HTML_OBFUSCATE_10_20 eval:html_range('obfuscation_ratio','.1','.2')
body HTML_OBFUSCATE_20_30 eval:html_range('obfuscation_ratio','.2','.3')
body HTML_OBFUSCATE_30_40 eval:html_range('obfuscation_ratio','.3','.4')
-body HTML_OBFUSCATE_40_50 eval:html_range('obfuscation_ratio','.4','.5')
body HTML_OBFUSCATE_50_60 eval:html_range('obfuscation_ratio','.5','.6')
-body HTML_OBFUSCATE_60_70 eval:html_range('obfuscation_ratio','.6','.7')
body HTML_OBFUSCATE_70_80 eval:html_range('obfuscation_ratio','.7','.8')
-body HTML_OBFUSCATE_80_90 eval:html_range('obfuscation_ratio','.8','.9')
body HTML_OBFUSCATE_90_100 eval:html_range('obfuscation_ratio','.9','1.0')
describe HTML_OBFUSCATE_05_10 Message is 5% to 10% HTML obfuscation
describe HTML_OBFUSCATE_10_20 Message is 10% to 20% HTML obfuscation
describe HTML_OBFUSCATE_20_30 Message is 20% to 30% HTML obfuscation
describe HTML_OBFUSCATE_30_40 Message is 30% to 40% HTML obfuscation
-describe HTML_OBFUSCATE_40_50 Message is 40% to 50% HTML obfuscation
describe HTML_OBFUSCATE_50_60 Message is 50% to 60% HTML obfuscation
-describe HTML_OBFUSCATE_60_70 Message is 60% to 70% HTML obfuscation
describe HTML_OBFUSCATE_70_80 Message is 70% to 80% HTML obfuscation
-describe HTML_OBFUSCATE_80_90 Message is 80% to 90% HTML obfuscation
describe HTML_OBFUSCATE_90_100 Message is 90% to 100% HTML obfuscation
-# backhair - idea from backhair set by Jennifer Wheeler and Adam Lopresto.
-body HTML_BACKHAIR_2 eval:html_range('backhair_count', '1', '4')
-body HTML_BACKHAIR_4 eval:html_range('backhair_count', '4', '8')
-body HTML_BACKHAIR_8 eval:html_range('backhair_count', '8', 'inf')
-describe HTML_BACKHAIR_2 HTML tags used to obfuscate words
-describe HTML_BACKHAIR_4 HTML tags used to obfuscate words
-describe HTML_BACKHAIR_8 HTML tags used to obfuscate words
-
-# HTML attribute testing
-body HTML_ATTR_BAD eval:html_range('attr_bad','0.75','1.0')
-describe HTML_ATTR_BAD HTML has many bad attributes in tags
-body HTML_ATTR_UNIQUE eval:html_range('attr_unique_bad','0.5','1.0')
-describe HTML_ATTR_UNIQUE HTML appears to have random attributes in tags
-
body HTML_TAG_BALANCE_BODY eval:html_tag_balance('body', '!= 0')
describe HTML_TAG_BALANCE_BODY HTML has unbalanced "body" tags
@@ -273,55 +169,25 @@
body HTML_TAG_EXIST_BGSOUND eval:html_tag_exists('bgsound')
describe HTML_TAG_EXIST_BGSOUND HTML has "bgsound" tag
-body HTML_TAG_EXIST_MARQUEE eval:html_tag_exists('marquee')
-describe HTML_TAG_EXIST_MARQUEE HTML has "marquee" tag
-
-body HTML_TAG_EXIST_TBODY eval:html_tag_exists('tbody')
-describe HTML_TAG_EXIST_TBODY HTML has "tbody" tag
-
# percentage of tags that are not legal elements in HTML
-body HTML_BADTAG_00_10 eval:html_range('bad_tag_ratio','0.00','0.10')
-body HTML_BADTAG_10_20 eval:html_range('bad_tag_ratio','0.10','0.20')
-body HTML_BADTAG_20_30 eval:html_range('bad_tag_ratio','0.20','0.30')
-body HTML_BADTAG_30_40 eval:html_range('bad_tag_ratio','0.30','0.40')
body HTML_BADTAG_40_50 eval:html_range('bad_tag_ratio','0.40','0.50')
body HTML_BADTAG_50_60 eval:html_range('bad_tag_ratio','0.50','0.60')
body HTML_BADTAG_60_70 eval:html_range('bad_tag_ratio','0.60','0.70')
-body HTML_BADTAG_70_80 eval:html_range('bad_tag_ratio','0.70','0.80')
-body HTML_BADTAG_80_90 eval:html_range('bad_tag_ratio','0.80','0.90')
body HTML_BADTAG_90_100 eval:html_range('bad_tag_ratio','0.90','1.00')
-describe HTML_BADTAG_00_10 HTML message is 0% to 10% bad tags
-describe HTML_BADTAG_10_20 HTML message is 10% to 20% bad tags
-describe HTML_BADTAG_20_30 HTML message is 20% to 30% bad tags
-describe HTML_BADTAG_30_40 HTML message is 30% to 40% bad tags
describe HTML_BADTAG_40_50 HTML message is 40% to 50% bad tags
describe HTML_BADTAG_50_60 HTML message is 50% to 60% bad tags
describe HTML_BADTAG_60_70 HTML message is 60% to 70% bad tags
-describe HTML_BADTAG_70_80 HTML message is 70% to 80% bad tags
-describe HTML_BADTAG_80_90 HTML message is 80% to 90% bad tags
describe HTML_BADTAG_90_100 HTML message is 90% to 100% bad tags
# percentage of unique non-elements in HTML
-body HTML_NONELEMENT_00_10 eval:html_range('non_element_ratio','0.00','0.10')
-body HTML_NONELEMENT_10_20 eval:html_range('non_element_ratio','0.10','0.20')
-body HTML_NONELEMENT_20_30 eval:html_range('non_element_ratio','0.20','0.30')
body HTML_NONELEMENT_30_40 eval:html_range('non_element_ratio','0.30','0.40')
body HTML_NONELEMENT_40_50 eval:html_range('non_element_ratio','0.40','0.50')
-body HTML_NONELEMENT_50_60 eval:html_range('non_element_ratio','0.50','0.60')
body HTML_NONELEMENT_60_70 eval:html_range('non_element_ratio','0.60','0.70')
-body HTML_NONELEMENT_70_80 eval:html_range('non_element_ratio','0.70','0.80')
body HTML_NONELEMENT_80_90 eval:html_range('non_element_ratio','0.80','0.90')
-body HTML_NONELEMENT_90_100 eval:html_range('non_element_ratio','0.90','1.00')
-describe HTML_NONELEMENT_00_10 0% to 10% of HTML elements are non-standard
-describe HTML_NONELEMENT_10_20 10% to 20% of HTML elements are non-standard
-describe HTML_NONELEMENT_20_30 20% to 30% of HTML elements are non-standard
describe HTML_NONELEMENT_30_40 30% to 40% of HTML elements are non-standard
describe HTML_NONELEMENT_40_50 40% to 50% of HTML elements are non-standard
-describe HTML_NONELEMENT_50_60 50% to 60% of HTML elements are non-standard
describe HTML_NONELEMENT_60_70 60% to 70% of HTML elements are non-standard
-describe HTML_NONELEMENT_70_80 70% to 80% of HTML elements are non-standard
describe HTML_NONELEMENT_80_90 80% to 90% of HTML elements are non-standard
-describe HTML_NONELEMENT_90_100 90% to 100% of HTML elements are non-standard
# short HTML messages with certain attributes
body __HTML_LINK_IMAGE eval:html_text_match('anchor', '<img>')
@@ -329,32 +195,21 @@
body __HTML_LENGTH_1024_1536 eval:html_range('length', '1024', '1536')
body __HTML_LENGTH_1536_2048 eval:html_range('length', '1536', '2048')
-body HTML_SHORT_LENGTH eval:html_eval('length', '< 170')
-describe HTML_SHORT_LENGTH HTML is extremely short
-
body __HTML_LENGTH_512 eval:html_eval('length', '< 512')
body __COMMENT_EXISTS eval:html_text_match('comment', '<!.*?>')
body __HTML_LENGTH_384 eval:html_eval('length', '< 384')
body __TAG_EXISTS_CENTER eval:html_tag_exists('center')
-body HTML_TITLE_EMPTY eval:html_text_not_match('title', '(?s)\S')
-describe HTML_TITLE_EMPTY HTML title contains no text
-
body __HTML_TITLE_120 eval:html_text_match('title', '.{120}')
body __HTML_TITLE_SUBJ_DIFF eval:html_title_subject_ratio('3.5')
-body HTML_TITLE_UNTITLED eval:html_text_match('title', '(?i)(?:untitled|new page \d+)')
-describe HTML_TITLE_UNTITLED HTML title contains "Untitled"
body __HTML_CHARSET_FARAWAY eval:html_charset_faraway()
body HTML_IFRAME_SRC eval:check_iframe_src()
describe HTML_IFRAME_SRC Message has HTML IFRAME tag with SRC URI
-
-body URI_HTML_ONLY eval:check_html_uri_only()
-describe URI_HTML_ONLY URIs only found in HTML part of multipart/alternative message
endif
Modified: spamassassin/branches/check_plugin/rules/25_replace.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/rules/25_replace.cf?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/rules/25_replace.cf (original)
+++ spamassassin/branches/check_plugin/rules/25_replace.cf Sat Oct 28 17:59:34 2006
@@ -104,9 +104,6 @@
describe FUZZY_BILLION Attempt to obfuscate words in spam
replace_rules FUZZY_BILLION
-body FUZZY_CELEBREX /<inter W1><post P2>(?!celebrex)<C><E><L><E><B><R><E><X>/i
-describe FUZZY_CELEBREX Attempt to obfuscate words in spam
-replace_rules FUZZY_CELEBREX
body FUZZY_CPILL /(?!ciali[sz])<C><I><A><L><I><S>/i
describe FUZZY_CPILL Attempt to obfuscate words in spam
@@ -120,9 +117,6 @@
describe FUZZY_ERECT Attempt to obfuscate words in spam
replace_rules FUZZY_ERECT
-body FUZZY_FOLLOW /(?!follow)<F><O><L><L><O><W>/i
-describe FUZZY_FOLLOW Attempt to obfuscate words in spam
-replace_rules FUZZY_FOLLOW
body FUZZY_GUARANTEE /<inter W1><post P2>(?!guarantee)<G><U><A><R><A><N><T><E><E>/i
describe FUZZY_GUARANTEE Attempt to obfuscate words in spam
@@ -132,9 +126,6 @@
describe FUZZY_MEDICATION Attempt to obfuscate words in spam
replace_rules FUZZY_MEDICATION
-body FUZZY_MILF /<inter SP>(?!milf)\b<M><I><L><F>/i
-describe FUZZY_MILF Attempt to obfuscate words in spam
-replace_rules FUZZY_MILF
body FUZZY_MILLION /(?!million)<M><I><L><L><I><O><N>/i
describe FUZZY_MILLION Attempt to obfuscate words in spam
@@ -164,9 +155,6 @@
describe FUZZY_PHENT Attempt to obfuscate words in spam
replace_rules FUZZY_PHENT
-body FUZZY_PLEASE /(?!please)<P><L><E><A><S><E>/i
-describe FUZZY_PLEASE Attempt to obfuscate words in spam
-replace_rules FUZZY_PLEASE
body FUZZY_PRESCRIPT /<inter W2><post P2>(?!prescription)<P><R><E><S><C><R><I><P><T><I><O><N>/i
describe FUZZY_PRESCRIPT Attempt to obfuscate words in spam
@@ -197,17 +185,11 @@
describe FUZZY_THOUSANDS Attempt to obfuscate words in spam
replace_rules FUZZY_THOUSANDS
-body FUZZY_TRAMADOL /<inter W1><post P2>(?!tramadol)<T><R><A><M><A><D><O><L>/i
-describe FUZZY_TRAMADOL Attempt to obfuscate words in spam
-replace_rules FUZZY_TRAMADOL
body FUZZY_VLIUM /<inter W1><post P2>(?!valium)<V><A><L><I><U><M>/i
describe FUZZY_VLIUM Attempt to obfuscate words in spam
replace_rules FUZZY_VLIUM
-body FUZZY_VICODIN /<inter W1><post P2>(?!vicodin)<V><I><C><O><D><I><N>/i
-describe FUZZY_VICODIN Attempt to obfuscate words in spam
-replace_rules FUZZY_VICODIN
body FUZZY_VIOXX /<inter W1><post P2>(?!vioxx)<V><I><O><X><X>/i
describe FUZZY_VIOXX Attempt to obfuscate words in spam
Modified: spamassassin/branches/check_plugin/rules/active.list
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/rules/active.list?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/rules/active.list (original)
+++ spamassassin/branches/check_plugin/rules/active.list Sat Oct 28 17:59:34 2006
@@ -1,11 +1,5 @@
# active ruleset list, automatically generated from http://ruleqa.spamassassin.org/
-# with results from: bb-doc bb-jm bb-zmi cthielen daf dos parkerm theo zmi
-
-# good enough
-ADVANCE_FEE_3
-
-# good enough
-ADVANCE_FEE_4
+# with results from: bb-doc bb-jm bb-zmi cthielen daf dos parkerm theo
# tflags userconf
ALL_TRUSTED
@@ -17,7 +11,7 @@
AXB_FAKETZ
# good enough
-BANG_OPRAH
+AXB_XR_STULDAP
# good enough
BASE64_LENGTH_78
@@ -62,37 +56,7 @@
BROKEN_RATWARE_BOM
# good enough
-CONFIRMED_FORGED
-
-# good enough
-CUM_SHOT
-
-# good enough
-DATE_IN_FUTURE_03_06
-
-# good enough
-DATE_IN_FUTURE_06_12
-
-# good enough
-DATE_IN_FUTURE_12_24
-
-# good enough
-DATE_IN_FUTURE_24_48
-
-# good enough
-DATE_IN_FUTURE_48_96
-
-# good enough
-DATE_IN_FUTURE_96_XX
-
-# good enough
-DATE_IN_PAST_06_12
-
-# good enough
-DATE_IN_PAST_96_XX
-
-# good enough
-DATE_SPAMWARE_Y2K
+CTYPE_000_00_BOUND
# good enough
DC_GIF_MULTI_LARGO
@@ -121,28 +85,16 @@
# tflags net
DIGEST_MULTIPLE
-# good enough
-DISGUISE_PORN_MUNDANE
-
# tflags net
DNS_FROM_AHBL_RHSBL
# tflags net
-DNS_FROM_RFC_ABUSE
-
-# tflags net
DNS_FROM_RFC_BOGUSMX
# tflags net
DNS_FROM_RFC_DSN
# tflags net
-DNS_FROM_RFC_POST
-
-# tflags net
-DNS_FROM_RFC_WHOIS
-
-# tflags net
DNS_FROM_SECURITYSAGE
# good enough
@@ -158,85 +110,19 @@
DOS_STOCK_O_PRICE
# good enough
-DOS_TWO_MIS_STOCK
-
-# good enough
-DOS_YOUR_PLACE
-
-# good enough
-DRUGS_ANXIETY
-
-# good enough
-DRUGS_ANXIETY_EREC
-
-# good enough
-DRUGS_ANXIETY_OBFU
-
-# good enough
-DRUGS_DIET
-
-# good enough
-DRUGS_DIET_OBFU
+DOS_TO_READ_STOCK
# good enough
-DRUGS_ERECTILE
+DOS_TWO_MIS_STOCK
# good enough
-DRUGS_ERECTILE_OBFU
+DOS_YOUR_PLACE
# good enough
DRUGS_HDIA
# good enough
-DRUGS_MANYKINDS
-
-# good enough
-DRUGS_SLEEP_EREC
-
-# good enough
-DRUG_DOSAGE
-
-# good enough
-DRUG_ED_GENERIC
-
-# good enough
-DRUG_ED_ONLINE
-
-# good enough
-DRUG_ED_SILD
-
-# good enough
-EMPTY_MESSAGE
-
-# good enough
-EM_ROLEX
-
-# tflags userconf
-ENV_AND_HDR_SPF_MATCH
-
-# good enough
-EXCUSE_24
-
-# good enough
-EXCUSE_4
-
-# good enough
-EXTRA_MPART_TYPE
-
-# good enough
-FAKE_HELO_LYCOS
-
-# good enough
-FAKE_HELO_MAIL_COM
-
-# good enough
-FAKE_HELO_MAIL_COM_DOM
-
-# good enough
-FAKE_HELO_MSN
-
-# good enough
-FAKE_OUTBLAZE_RCVD
+DRUGS_STOCK_MIMEOLE
# good enough
FB_CIALIS_LEO3
@@ -272,123 +158,15 @@
FH_FROM_TO_PERC
# good enough
-FH_RCVD_WITHSMTPFOR
-
-# good enough
FM_CUSTOMLOGODSGNc
# good enough
-FORGED_AOL_TAGS
-
-# good enough
-FORGED_HOTMAIL_RCVD
-
-# good enough
-FORGED_IMS_HTML
-
-# good enough
-FORGED_IMS_TAGS
-
-# good enough
-FORGED_MSGID_AOL
-
-# good enough
-FORGED_MSGID_EXCITE
-
-# good enough
-FORGED_MSGID_HOTMAIL
-
-# good enough
-FORGED_MSGID_MSN
-
-# good enough
-FORGED_MSGID_YAHOO
-
-# good enough
-FORGED_MUA_AOL_FROM
-
-# good enough
-FORGED_MUA_EUDORA
-
-# good enough
-FORGED_MUA_IMS
-
-# good enough
-FORGED_MUA_MOZILLA
-
-# good enough
-FORGED_MUA_OIMO
-
-# good enough
-FORGED_MUA_OUTLOOK
-
-# good enough
-FORGED_MUA_THEBAT_BOUN
-
-# good enough
-FORGED_OUTLOOK_HTML
-
-# good enough
-FORGED_OUTLOOK_TAGS
-
-# good enough
-FORGED_QUALCOMM_TAGS
-
-# good enough
-FORGED_TELESP_RCVD
-
-# good enough
-FORGED_THEBAT_HTML
-
-# good enough
-FORGED_YAHOO_RCVD
-
-# good enough
-FREE_PORN
-
-# good enough
-FREE_QUOTE_INSTANT
-
-# good enough
-FROM_ALL_NUMS
-
-# good enough
-FROM_BLANK_NAME
-
-# good enough
-FROM_DOMAIN_NOVOWEL
-
-# good enough
-FROM_ENDS_IN_NUMS
-
-# good enough
-FROM_HAS_MIXED_NUMS
-
-# good enough
-FROM_ILLEGAL_CHARS
-
-# good enough
-FROM_LOCAL_DIGITS
-
-# good enough
-FROM_LOCAL_HEX
-
-# good enough
-FROM_LOCAL_NOVOWEL
-
-# good enough
-FROM_NO_USER
-
-# good enough
FS_START_DOYOU2
# good enough
FUZZY_MERIDIA
# good enough
-GAPPY_SUBJECT
-
-# good enough
GEO_QUERY_STRING
# good enough
@@ -427,38 +205,8 @@
# tflags userconf
HASHCASH_HIGH
-# good enough
-HEADER_SPAM
-
-# good enough
-HEAD_ILLEGAL_CHARS
-
-# good enough
-HELO_DYNAMIC_CHELLO_NL
-
-# good enough
-HELO_DYNAMIC_DIALIN
-
-# good enough
-HELO_DYNAMIC_HCC
-
-# good enough
-HELO_DYNAMIC_HEXIP
-
-# good enough
-HELO_DYNAMIC_HOME_NL
-
-# good enough
-HELO_DYNAMIC_IPADDR
-
-# good enough
-HELO_DYNAMIC_IPADDR2
-
-# good enough
-HELO_DYNAMIC_SPLIT_IP
-
-# good enough
-HG_HORMONE
+# tflags userconf
+HEAD_LONG
# good enough
HS_FORGED_OE_FW
@@ -467,7 +215,7 @@
HS_GETMEOFF
# good enough
-HS_MEETUP_FOR_SEX
+HS_PHARMA_1
# good enough
HS_SUBJ_ONLINE_PHARMACEUTICAL
@@ -479,36 +227,9 @@
HTTPS_HTTP_MISMATCH
# good enough
-HTTPS_IP_MISMATCH
-
-# good enough
-HTTP_77
-
-# good enough
-HTTP_EXCESSIVE_ESCAPES
-
-# good enough
-INFO_TLD
-
-# good enough
-INVALID_DATE
-
-# good enough
-INVALID_TZ_CST
-
-# good enough
-INVESTMENT_ADVICE
-
-# good enough
-JM_LC_MID
-
-# good enough
JM_RCVD_QMAILV1
# good enough
-JM_RCVD_SENDMAILID
-
-# good enough
KAM_STOCKOTC
# good enough
@@ -527,172 +248,40 @@
KAM_STOCKTIP8
# good enough
-KOREAN_UCE_SUBJECT
-
-# good enough
-LOCALPART_IN_SUBJECT
-
-# good enough
-LONGWORDS
-
-# good enough
-MALE_ENHANCE
-
-# good enough
MID_DEGREES
# good enough
MID_MJW_STOX
# good enough
-MID_OUTLOOK_ZZZNN
-
-# good enough
-MILLION_USD
-
-# good enough
-MIME_BAD_ISO_CHARSET
-
-# good enough
-MIME_BASE64_BLANKS
-
-# good enough
-MIME_BASE64_TEXT
-
-# good enough
-MIME_BOUND_ALLHEX_17
-
-# good enough
-MIME_BOUND_DD_DIGITS
-
-# good enough
-MIME_BOUND_DIGITS_15
-
-# good enough
-MIME_BOUND_MANY_HEX
-
-# good enough
-MIME_BOUND_RKFINDY
-
-# good enough
-MISSING_MIMEOLE
-
-# good enough
-MISSING_MIME_HB_SEP
-
-# good enough
-MORE_SEX
-
-# good enough
-MSGID_DOLLARS_RANDOM
-
-# good enough
-MSGID_OUTLOOK_INVALID
-
-# good enough
-MSGID_RANDY
-
-# good enough
-MSGID_SHORT
-
-# good enough
-MSGID_SPAM_CAPS
-
-# good enough
-MSGID_SPAM_LETTERS
-
-# good enough
-MSGID_YAHOO_CAPS
-
-# good enough
-MULTIPART_ALT_NON_TEXT
-
-# good enough
-NOT_ADVISOR
-
-# tflags net
-NO_DNS_FOR_FROM
-
-# good enough
-NO_PRESCRIPTION
-
-# good enough
-NO_RDNS_DOTCOM_HELO
+MID_START_001C
# tflags userconf
-NO_RECEIVED
+MISSING_HB_SEP
-# tflags userconf
-NO_RELAYS
-
-# good enough
-NULL_IN_BODY
-
-# good enough
-NUMERIC_HTTP_ADDR
-
-# good enough
-ONLINE_PHARMACY
-
-# good enough
-PERCENT_RANDOM
-
-# good enough
-PLING_QUERY
-
-# good enough
-PORN_15
-
-# good enough
-PREST_NON_ACCREDITED
-
-# tflags net
-PYZOR_CHECK
-
-# good enough
-RATWARE_EFROM
-
-# good enough
-RATWARE_EGROUPS
-
-# good enough
-RATWARE_GECKO_BUILD
-
-# good enough
-RATWARE_HASH_2
-
-# good enough
-RATWARE_HASH_2_BUG2108
-
-# good enough
-RATWARE_HASH_2_V2
-
-# good enough
-RATWARE_HASH_2_V2_BUG2108
-
-# good enough
-RATWARE_MOZ_MALFORMED
+# tflags net
+NO_DNS_FOR_FROM
-# good enough
-RATWARE_MS_HASH
+# tflags userconf
+NO_RECEIVED
-# good enough
-RATWARE_NAME_ID
+# tflags userconf
+NO_RELAYS
# good enough
-RATWARE_OE_MALFORMED
+NULL_IN_BODY
# good enough
-RATWARE_OUTLOOK_NONAME
+OUTLOOK_3416
# good enough
-RATWARE_RCVD_AT
+PART_CID_STOCK
# good enough
-RATWARE_RCVD_PF
+PART_CID_STOCK_LESS
-# good enough
-RATWARE_ZERO_TZ
+# tflags net
+PYZOR_CHECK
# tflags net
RAZOR2_CF_RANGE_51_100
@@ -707,22 +296,7 @@
RAZOR2_CHECK
# good enough
-RCVD_AM_PM
-
-# good enough
-RCVD_DOUBLE_IP_LOOSE
-
-# good enough
-RCVD_DOUBLE_IP_SPAM
-
-# good enough
-RCVD_FAKE_HELO_DOTCOM
-
-# good enough
-RCVD_HELO_IP_MISMATCH
-
-# good enough
-RCVD_ILLEGAL_IP
+RCVD_FORGED_WROTE
# tflags net
RCVD_IN_BL_SPAMCOP_NET
@@ -812,38 +386,11 @@
RCVD_LSO_SND
# good enough
-RCVD_NUMERIC_HELO
-
-# good enough
-REPLICA_WATCH
-
-# good enough
-REPTO_OVERQUOTE_THEBAT
-
-# good enough
-REPTO_QUOTE_AOL
-
-# good enough
-REPTO_QUOTE_IMS
-
-# good enough
-REPTO_QUOTE_MSN
-
-# good enough
-REPTO_QUOTE_QUALCOMM
-
-# good enough
-REPTO_QUOTE_YAHOO
+RCVD_MAIL_COM
# tflags net
ROUND_THE_WORLD
-# good enough
-ROUND_THE_WORLD_LOCAL
-
-# good enough
-SORTED_RECIPS
-
# tflags net
SPF_FAIL
@@ -868,27 +415,6 @@
# tflags net
SPF_SOFTFAIL
-# good enough
-SPOOF_COM2OTH
-
-# good enough
-SPOOF_NET2COM
-
-# good enough
-STOCK_ALERT
-
-# good enough
-SUBJECT_DRUG_GAP_C
-
-# good enough
-SUBJECT_DRUG_GAP_L
-
-# good enough
-SUBJECT_DRUG_GAP_S
-
-# good enough
-SUBJECT_DRUG_GAP_X
-
# tflags userconf
SUBJECT_IN_BLACKLIST
@@ -899,25 +425,13 @@
SUBJECT_NEEDS_ENCODING
# good enough
-SUBJECT_SEXUAL
-
-# good enough
-SUBJ_ILLEGAL_CHARS
-
-# good enough
SUBJ_RE_NUM
# good enough
-SUSPICIOUS_RECIPS
-
-# good enough
-TO_MALFORMED
-
-# good enough
-TO_NO_USER
+TT_MSGID_TRUNC
# good enough
-TT_MSGID_TRUNC
+TT_OBSCURED_VIAGRA
# good enough
TVD_ACT_193
@@ -950,9 +464,6 @@
TVD_FUZZY_FIXED_RATE
# good enough
-TVD_FUZZY_MICROCAP
-
-# good enough
TVD_FUZZY_PHARMACEUTICAL
# good enough
@@ -965,9 +476,6 @@
TVD_FW_GRAPHIC_ID3_2
# good enough
-TVD_FW_MESG1
-
-# good enough
TVD_GET_STOCK
# good enough
@@ -977,9 +485,6 @@
TVD_INCREASE_SIZE
# good enough
-TVD_LINK_SAVE
-
-# good enough
TVD_NOT_SATISFIED
# good enough
@@ -1019,6 +524,9 @@
TVD_RATWARE_CB
# good enough
+TVD_RATWARE_CB_2
+
+# good enough
TVD_RATWARE_MSGID_01
# good enough
@@ -1037,12 +545,6 @@
TVD_SPACED_SUBJECT_WORD5
# good enough
-TVD_SPACED_WORDS
-
-# good enough
-TVD_SPACE_RATIO
-
-# good enough
TVD_STOCK1
# good enough
@@ -1075,47 +577,233 @@
# good enough
TVD_VIS_HIDDEN
-# good enough
-FORGED_IMS_HTML
+# tflags userconf
+CORRUPT_FROM_LINE_IN_HDRS
# good enough
-FORGED_IMS_TAGS
+CTYPE_8SPACE_GIF
-# good enough
-FORGED_OUTLOOK_HTML
+# tflags net
+DNS_FROM_DOB
-# good enough
-FORGED_OUTLOOK_TAGS
+# tflags net
+DNS_FROM_OPENWHOIS
-# good enough
-RATWARE_MS_HASH
+# tflags net
+RCVD_IN_DOB
-# good enough
-RATWARE_OUTLOOK_NONAME
+# tflags net
+RCVD_IN_DSBL
-# good enough
-TVD_FW_GRAPHIC_ID1
+# tflags net
+RCVD_IN_IADB_DK
-# good enough
-TVD_FW_GRAPHIC_ID2
+# tflags net
+RCVD_IN_IADB_DOPTIN
-# good enough
-UNCLAIMED_MONEY
+# tflags net
+RCVD_IN_IADB_DOPTIN_GT50
-# good enough
-UNCLOSED_BRACKET
+# tflags net
+RCVD_IN_IADB_DOPTIN_LT50
-# tflags userconf
-UNPARSEABLE_RELAY
+# tflags net
+RCVD_IN_IADB_EDDB
+
+# tflags net
+RCVD_IN_IADB_EPIA
+
+# tflags net
+RCVD_IN_IADB_GOODMAIL
+
+# tflags net
+RCVD_IN_IADB_LISTED
+
+# tflags net
+RCVD_IN_IADB_LOOSE
+
+# tflags net
+RCVD_IN_IADB_MI_CPEAR
+
+# tflags net
+RCVD_IN_IADB_MI_CPR_30
+
+# tflags net
+RCVD_IN_IADB_MI_CPR_MAT
+
+# tflags net
+RCVD_IN_IADB_ML_DOPTIN
+
+# tflags net
+RCVD_IN_IADB_NOCONTROL
+
+# tflags net
+RCVD_IN_IADB_OOO
+
+# tflags net
+RCVD_IN_IADB_OPTIN
+
+# tflags net
+RCVD_IN_IADB_OPTIN_GT50
+
+# tflags net
+RCVD_IN_IADB_OPTIN_LT50
+
+# tflags net
+RCVD_IN_IADB_OPTOUTONLY
+
+# tflags net
+RCVD_IN_IADB_RDNS
+
+# tflags net
+RCVD_IN_IADB_SENDERID
+
+# tflags net
+RCVD_IN_IADB_SPF
+
+# tflags net
+RCVD_IN_IADB_UNVERIFIED_1
+
+# tflags net
+RCVD_IN_IADB_UNVERIFIED_2
+
+# tflags net
+RCVD_IN_IADB_UT_CPEAR
+
+# tflags net
+RCVD_IN_IADB_UT_CPR_30
+
+# tflags net
+RCVD_IN_IADB_UT_CPR_MAT
+
+# tflags net
+RCVD_IN_MAPS_DUL
+
+# tflags net
+RCVD_IN_NJABL_DUL
+
+# tflags net
+RCVD_IN_SORBS_DUL
+
+# tflags net
+RCVD_IN_WHOIS_INVALID
+
+# tflags net
+RCVD_IN_XBL
# good enough
-UNRESOLVED_TEMPLATE
+TVD_FW_GRAPHIC_NAME_LONG
# good enough
-UPPERCASE_50_75
+TVD_FW_GRAPHIC_NAME_MID
# good enough
-UPPERCASE_75_100
+TVD_PH_SEC
+
+# tflags net
+URIBL_RHS_DOB
+
+# tflags net
+WHOIS_AITPRIV
+
+# tflags net
+WHOIS_CONTACTPRIV
+
+# tflags net
+WHOIS_DMNBYPROXY
+
+# tflags net
+WHOIS_DOMESCROW
+
+# tflags net
+WHOIS_DOMPRIVCORP
+
+# tflags net
+WHOIS_DREAMPRIV
+
+# tflags net
+WHOIS_DROA
+
+# tflags net
+WHOIS_DYNADOT
+
+# tflags net
+WHOIS_FINEXE
+
+# tflags net
+WHOIS_GKGPROXY
+
+# tflags net
+WHOIS_IDSHIELD
+
+# tflags net
+WHOIS_IDTHEFTPROT
+
+# tflags net
+WHOIS_KATZ
+
+# tflags net
+WHOIS_LISTINGAG
+
+# tflags net
+WHOIS_LNOA
+
+# tflags net
+WHOIS_MAPNAME
+
+# tflags net
+WHOIS_MONIKER_PRIV
+
+# tflags net
+WHOIS_MYPRIVREG
+
+# tflags net
+WHOIS_NAMESECURE
+
+# tflags net
+WHOIS_NETID
+
+# tflags net
+WHOIS_NETSOLPR
+
+# tflags net
+WHOIS_NOLDC
+
+# tflags net
+WHOIS_NOMINET
+
+# tflags net
+WHOIS_PRIVACYPOST
+
+# tflags net
+WHOIS_PRIVDOMAIN
+
+# tflags net
+WHOIS_REGISTER4LESS
+
+# tflags net
+WHOIS_REGTEK
+
+# tflags net
+WHOIS_SAFENAMES
+
+# tflags net
+WHOIS_SECINFOSERV
+
+# tflags net
+WHOIS_SPAMFREE
+
+# tflags net
+WHOIS_SRSPLUS
+
+# tflags net
+WHOIS_UNLISTED
+
+# tflags net
+WHOIS_WHOISPROT
+
+# tflags userconf
+UNPARSEABLE_RELAY
# tflags net
URIBL_AB_SURBL
@@ -1150,15 +838,6 @@
# good enough
URI_L_PHP
-# good enough
-URI_NOVOWEL
-
-# good enough
-URI_NO_WWW_BIZ_CGI
-
-# good enough
-URI_NO_WWW_INFO_CGI
-
# tflags userconf
USER_IN_ALL_SPAM_TO
@@ -1169,18 +848,12 @@
USER_IN_BLACKLIST_TO
# tflags userconf
-USER_IN_DEF_SPF_WL
-
-# tflags userconf
USER_IN_DEF_WHITELIST
# tflags userconf
USER_IN_MORE_SPAM_TO
# tflags userconf
-USER_IN_SPF_WHITELIST
-
-# tflags userconf
USER_IN_WHITELIST
# tflags userconf
@@ -1189,35 +862,32 @@
# good enough
VERTICAL_DRUGS_1
-# good enough
-VIA_GAP_GRA
-
-# good enough
-WEIRD_QUOTING
-
-# good enough
-X_IP
+# tflags net
+WHOIS_1AND1PR
-# good enough
-X_LIBRARY
+# tflags net
+WHOIS_NAMEKING
-# good enough
-X_MESSAGE_INFO
+# tflags net
+WHOIS_PRIVPROT
-# good enough
-X_MSMAIL_PRIORITY_HIGH
+# tflags net
+WHOIS_REGISTERFLY
-# good enough
-X_ORIG_IP_NOT_IPV4
+# tflags net
+WHOIS_SECUREWHOIS
-# good enough
-X_PRIORITY_CC
+# tflags net
+WHOIS_WHOISGUARD
# good enough
ZMIde_EBAYJOBSURI
# good enough
ZMIde_SEXUALEXPL1
+
+# tflags net
+__RCVD_IN_DOB
# tflags net
__RCVD_IN_IADB
Modified: spamassassin/branches/check_plugin/rules/regression_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/rules/regression_tests.cf?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/rules/regression_tests.cf (original)
+++ spamassassin/branches/check_plugin/rules/regression_tests.cf Sat Oct 28 17:59:34 2006
@@ -27,8 +27,6 @@
test DEAR_FRIEND ok Dear friend,
test DEAR_FRIEND fail Dear Mr. Ithacus,
-test FROM_ENDS_IN_NUMS ok matt12345678@sergeant.org
-test FROM_ENDS_IN_NUMS fail matt@sergeant.org
test FROM_STARTS_WITH_NUMS ok 12345678matt@sergeant.org
test FROM_STARTS_WITH_NUMS fail matt@sergeant.org
test FORGED_YAHOO_RCVD fail by mf1.lng.yahoo.com (8.11.1/8.11.1) id g3SDfPH19426
Modified: spamassassin/branches/check_plugin/sa-learn.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/sa-learn.raw?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/sa-learn.raw (original)
+++ spamassassin/branches/check_plugin/sa-learn.raw Sat Oct 28 17:59:34 2006
@@ -85,7 +85,8 @@
%opt = (
'force-expire' => 0,
'use-ignores' => 0,
- 'nosync' => 0,
+ 'nosync' => 0,
+ 'cf' => []
);
Getopt::Long::Configure(
@@ -104,6 +105,7 @@
'configpath|config-file|config-dir|c|C=s' => \$opt{'configpath'},
'prefspath|prefs-file|p=s' => \$opt{'prefspath'},
'siteconfigpath=s' => \$opt{'siteconfigpath'},
+ 'cf=s' => \@{$opt{'cf'}},
'folders|f=s' => \$opt{'folders'},
'force-expire|expire' => \$opt{'force-expire'},
@@ -216,6 +218,8 @@
$post_config .= "use_bayes 1\n";
}
+$post_config .= join("\n", @{$opt{'cf'}})."\n";
+
# create the tester factory
$spamtest = new Mail::SpamAssassin(
{
@@ -585,6 +589,7 @@
-C path, --configpath=path, --config-file=path Path to standard configuration dir
-p prefs, --prefspath=file, --prefs-file=file Set user preferences file
--siteconfigpath=path Path for site configs (def: /etc/mail/spamassassin)
+ --cf='config line' Additional line of configuration
-D, --debug-level Print debugging messages
-V, --version Print version
-h, --help Print usage message
@@ -738,6 +743,12 @@
Use the specified path for locating site-specific configuration files. Ignore
the default directories (usually C</etc/mail/spamassassin> or similar).
+
+=item B<--cf='config line'>
+
+Add additional lines of configuration directly from the command-line, parsed
+after the configuration files are read. Multiple B<--cf> arguments can be
+used, and each will be considered a separate line of configuration.
=item B<-p> I<prefs>, B<--prefspath>=I<prefs>, B<--prefs-file>=I<prefs>
Modified: spamassassin/branches/check_plugin/sa-update.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/sa-update.raw?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/sa-update.raw (original)
+++ spamassassin/branches/check_plugin/sa-update.raw Sat Oct 28 17:59:34 2006
@@ -663,7 +663,7 @@
Perhaps you need to import the channel's GPG key? For example:
wget http://spamassassin.apache.org/updates/GPG.KEY
- gpg --import GPG.KEY
+ sa-update --import GPG.KEY
ENDOFVALIDATIONERR
Modified: spamassassin/branches/check_plugin/spamassassin.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/spamassassin.raw?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/spamassassin.raw (original)
+++ spamassassin/branches/check_plugin/spamassassin.raw Sat Oct 28 17:59:34 2006
@@ -152,7 +152,7 @@
# - create user preference files
# - have ArchiveIterator detect the input message format (file vs dir)
#
-my %opt = ( 'create-prefs' => 1, 'format' => 'detect' );
+my %opt = ( 'create-prefs' => 1, 'format' => 'detect', cf => [] );
my $doing_whitelist_operation = 0;
my $count = 0;
@@ -174,6 +174,7 @@
'add-to-whitelist|W' => \$opt{'add-to-whitelist'},
'configpath|config-file|config-dir|c|C=s' => \$opt{'configpath'},
'create-prefs!' => \$opt{'create-prefs'},
+ 'cf=s' => \@{$opt{'cf'}},
'debug|D:s' => \$opt{'debug'},
'error-code|exit-code|e:i' => \$opt{'error-code'},
'help|h|?' => \$opt{'help'},
@@ -250,6 +251,7 @@
local_tests_only => $opt{'local'},
debug => $opt{'debug'},
dont_copy_prefs => ( $opt{'create-prefs'} ? 0 : 1 ),
+ post_config_text => join("\n", @{$opt{'cf'}})."\n",
PREFIX => $PREFIX,
DEF_RULES_DIR => $DEF_RULES_DIR,
LOCAL_RULES_DIR => $LOCAL_RULES_DIR,
Modified: spamassassin/branches/check_plugin/spamassassin.spec
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/spamassassin.spec?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/spamassassin.spec (original)
+++ spamassassin/branches/check_plugin/spamassassin.spec Sat Oct 28 17:59:34 2006
@@ -64,8 +64,8 @@
%package -n perl-Mail-SpamAssassin
Summary: %{pdir}::%{pnam} -- SpamAssassin e-mail filter Perl modules
Summary(pl): %{pdir}::%{pnam} -- modu³y Perla filtru poczty SpamAssassin
-Requires: perl >= 5.6.1 perl(HTML::Parser) perl(Digest::SHA1)
-BuildRequires: perl >= 5.6.1 perl(HTML::Parser) perl(Digest::SHA1)
+Requires: perl >= 5.6.1 perl(HTML::Parser) perl(Digest::SHA1) perl(Net::DNS)
+BuildRequires: perl >= 5.6.1 perl(HTML::Parser) perl(Digest::SHA1) perl(Net::DNS)
Group: Development/Libraries
%description -n perl-Mail-SpamAssassin
Modified: spamassassin/branches/check_plugin/spamc/configure
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/spamc/configure?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/spamc/configure (original)
+++ spamassassin/branches/check_plugin/spamc/configure Sat Oct 28 17:59:34 2006
@@ -2231,9 +2231,10 @@
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test "x$GCC" = "xyes" ; then
- CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
-fi
+# off: breaks gcc 3.3.x! doh
+# if test "x$GCC" = "xyes" ; then
+# CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
+# fi
Modified: spamassassin/branches/check_plugin/spamc/configure.in
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/spamc/configure.in?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/spamc/configure.in (original)
+++ spamassassin/branches/check_plugin/spamc/configure.in Sat Oct 28 17:59:34 2006
@@ -17,9 +17,10 @@
AC_PROG_CC
-if test "x$GCC" = "xyes" ; then
- CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
-fi
+# off: breaks gcc 3.3.x! doh
+# if test "x$GCC" = "xyes" ; then
+# CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
+# fi
AC_EXEEXT
Modified: spamassassin/branches/check_plugin/spamd/spamd.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/spamd/spamd.raw?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/spamd/spamd.raw (original)
+++ spamassassin/branches/check_plugin/spamd/spamd.raw Sat Oct 28 17:59:34 2006
@@ -170,6 +170,7 @@
'min-children' => 1, # min kids to have running
'min-spare' => 1, # min kids that must be spare
'max-spare' => 2, # max kids that should be spare
+ 'cf' => [], # extra config lines
);
@@ -236,6 +237,7 @@
'setuid-with-ldap' => \$opt{'setuid-with-ldap'},
'setuid-with-sql' => \$opt{'setuid-with-sql'},
'siteconfigpath=s' => \$opt{'siteconfigpath'},
+ 'cf=s' => \@{$opt{'cf'}},
'socketgroup=s' => \$opt{'socketgroup'},
'socketmode=s' => \$opt{'socketmode'},
'socketowner=s' => \$opt{'socketowner'},
@@ -731,6 +733,7 @@
dont_copy_prefs => $dontcopy,
rules_filename => ( $opt{'configpath'} || 0 ),
site_rules_filename => ( $opt{'siteconfigpath'} || 0 ),
+ post_config_text => join("\n", @{$opt{'cf'}})."\n",
force_ipv4 => ( $opt{'force_ipv4'} || 0 ),
local_tests_only => ( $opt{'local'} || 0 ),
debug => ( $opt{'debug'} || 0 ),
@@ -2216,6 +2219,7 @@
-c, --create-prefs Create user preferences files
-C path, --configpath=path Path for default config files
--siteconfigpath=path Path for site configs
+ --cf='config line' Additional line of configuration
-d, --daemonize Daemonize
-h, --help Print usage message.
-i [ipaddr], --listen-ip=ipaddr Listen on the IP ipaddr
@@ -2319,6 +2323,12 @@
Use the specified path for locating site-specific configuration files. Ignore
the default directories (usually C</etc/mail/spamassassin> or similar).
+
+=item B<--cf='config line'>
+
+Add additional lines of configuration directly from the command-line, parsed
+after the configuration files are read. Multiple B<--cf> arguments can be
+used, and each will be considered a separate line of configuration.
=item B<-d>, B<--daemonize>
Modified: spamassassin/branches/check_plugin/t/bayesdbm.t
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/t/bayesdbm.t?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/t/bayesdbm.t (original)
+++ spamassassin/branches/check_plugin/t/bayesdbm.t Sat Oct 28 17:59:34 2006
@@ -63,7 +63,8 @@
# $msgid is the generated hash messageid
# $msgid_hdr is the Message-Id header
-ok($msgid eq 'ce33e4a8bc5798c65428d6018380bae346c7c126@sa_generated');
+ok($msgid eq 'ce33e4a8bc5798c65428d6018380bae346c7c126@sa_generated')
+ or warn "got: [$msgid]";
ok($msgid_hdr eq '9PS291LhupY');
ok($sa->{bayes_scanner}->{store}->tie_db_writable());
Modified: spamassassin/branches/check_plugin/t/mimeheader.t
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/t/mimeheader.t?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/t/mimeheader.t (original)
+++ spamassassin/branches/check_plugin/t/mimeheader.t Sat Oct 28 17:59:34 2006
@@ -2,7 +2,7 @@
use lib '.'; use lib 't';
use SATest; sa_t_init("mimeheader");
-use Test; BEGIN { plan tests => 2 };
+use Test; BEGIN { plan tests => 4 };
$ENV{'LANGUAGE'} = $ENV{'LC_ALL'} = 'C'; # a cheat, but we need the patterns to work
@@ -12,6 +12,8 @@
q{ MIMEHEADER_TEST1 }, q{ test1 },
q{ MIMEHEADER_TEST2 }, q{ test2 },
+ q{ MATCH_NL_NONRAW }, q{ match_nl_nonraw },
+ q{ MATCH_NL_RAW }, q{ match_nl_raw },
);
@@ -20,6 +22,9 @@
# loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
mimeheader MIMEHEADER_TEST1 content-type =~ /application\/msword/
mimeheader MIMEHEADER_TEST2 content-type =~ m!APPLICATION/MSWORD!i
+
+ mimeheader MATCH_NL_NONRAW Content-Type =~ /msword; name/
+ mimeheader MATCH_NL_RAW Content-Type:raw =~ /msword;\n\tname/
});
Modified: spamassassin/branches/check_plugin/t/missing_hb_separator.t
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/t/missing_hb_separator.t?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/t/missing_hb_separator.t (original)
+++ spamassassin/branches/check_plugin/t/missing_hb_separator.t Sat Oct 28 17:59:34 2006
@@ -42,6 +42,7 @@
$result = 0;
foreach (@{$status->{test_names_hit}}) {
+ print "test hit: $_\n";
$result++ if ($_ eq 'MISSING_HB_SEP' || $_ eq 'X_MESSAGE_INFO');
}
Modified: spamassassin/branches/check_plugin/t/mkrules.t
URL: http://svn.apache.org/viewvc/spamassassin/branches/check_plugin/t/mkrules.t?view=diff&rev=468796&r1=468795&r2=468796
==============================================================================
--- spamassassin/branches/check_plugin/t/mkrules.t (original)
+++ spamassassin/branches/check_plugin/t/mkrules.t Sat Oct 28 17:59:34 2006
@@ -2,7 +2,7 @@
use lib '.'; use lib 't';
use SATest; sa_t_init("mkrules");
-use Test; BEGIN { plan tests => 96 };
+use Test; BEGIN { plan tests => 101 };
use File::Path;
# ---------------------------------------------------------------------------
@@ -417,6 +417,36 @@
# checkfile("$tdir/rules/72_active.cf", \&patterns_run_cb);
checkfile("$tdir/rules/70_sandbox.cf", \&patterns_run_cb);
ok (-f "$tdir/rules/plugin.pm");
+ok ok_all_patterns();
+save_tdir();
+
+# ---------------------------------------------------------------------------
+print "meta rule depends on unpromoted subrule in lexically-earlier file\n\n";
+# (see mail from Sidney of Oct 16 2006, rules HS_INDEX_PARAM and HS_PHARMA_1)
+
+%patterns = (
+ "header T_GOOD_SUB" => rule_line_1,
+ "header T_BAD_SUB" => rule_line_2,
+ "meta GOOD (T_GOOD_SUB && !T_BAD_SUB)" => meta_found
+);
+%anti_patterns = (
+);
+
+rmtree([ $tdir ]); mkpath ([ "$tdir/rulesrc/sandbox/foo", "$tdir/rules" ]);
+
+write_file("$tdir/MANIFEST", [ "rules/72_active.cf\n" ]);
+write_file("$tdir/MANIFEST.SKIP", [ ]);
+write_file("$tdir/rules/active.list", [ "GOOD\n" ]);
+write_file("$tdir/rulesrc/sandbox/foo/20_aaa.cf", [
+ "meta GOOD (GOOD_SUB && !BAD_SUB)\n",
+]);
+write_file("$tdir/rulesrc/sandbox/foo/20_bbb.cf", [
+ "header GOOD_SUB Foo =~ /good/\n",
+ "header BAD_SUB Foo =~ /bad/\n",
+]);
+
+ok (mkrun ("--src $tdir/rulesrc --out $tdir/rules --manifest $tdir/MANIFEST --manifestskip $tdir/MANIFEST.SKIP --active $tdir/rules/active.list 2>&1", \&patterns_run_cb));
+checkfile("$tdir/rules/72_active.cf", \&patterns_run_cb);
ok ok_all_patterns();
save_tdir();