| #!/usr/bin/perl -w |
| |
| my $tmpl = ' if (%%PATTERN%%) { |
| print "$lineno ${_}matches %%QPATTERN%%\n"; |
| return; |
| } |
| '; |
| my $stmt = ""; |
| my $in_header = 1; |
| |
| while (<DATA>) { |
| if (/^\$global_taboo_body =/) { |
| $in_header = 0; |
| } |
| next if (/^\043/ || /^\$/ || /^END$/ || /^\s*$/); |
| chomp; |
| my $p = $_; |
| if ($in_header) { |
| $p = '/^[-\w_]*:/ && ' . $p; |
| } |
| my $q = quotemeta($p); |
| my $stmt1 = $tmpl; |
| $stmt1 =~ s|%%PATTERN%%|$p|g; |
| $stmt1 =~ s|%%QPATTERN%%|$q|g; |
| $stmt .= $stmt1; |
| } |
| close DATA; |
| |
| $stmt = 'sub check { |
| my ($line, $lineno) = @_; |
| ' . $stmt . ' |
| } |
| '; |
| eval $stmt; |
| while (<>) { |
| check($_, $.); |
| } |
| |
| my $how_to_update_this_script = <<'EOF' ; |
| ( sed -e '/^__DATA__$/q' taboo.perl && \ |
| wget -q -O - http://vger.kernel.org/majordomo-taboos.txt ) \ |
| >taboo.perl+ |
| if diff -u taboo.perl taboo.perl+; \ |
| then \ |
| rm -f taboo.perl+; \ |
| echo >&2 No changes.; \ |
| else \ |
| mv taboo.perl+ taboo.perl; \ |
| chmod +x taboo.perl; \ |
| fi |
| EOF |
| |
| __DATA__ |
| #TABOO-START |
| # |
| # These are Majordomo's global majordomo.cf as used at |
| # vger.kernel.org. This is automated extract from running |
| # system configuration. THESE MIGHT NOT BE USEFULL IN ANY |
| # OTHER ENVIRONMENT, AND THIS EXTRACT IS SHOWN ONLY FOR |
| # YOU TO SEE, WHAT TRIGGERS BLOCKING AT VGER'S LISTS. |
| # |
| # taboo headers to catch |
| # |
| $global_taboo_headers = <<'END'; |
| m/From:.*MAILER-DAEMON/i |
| m/^Mailing-List:/i |
| m/^list-/i |
| /^subject: ndn: /i |
| /^subject:\s*RCPT:/i |
| /^subject:\s*Delivery Confirmation\b/i |
| /^subject:\s*NON-DELIVERY of:/i |
| /^subject:.*Undeliverable Message\b/i |
| /^subject:.*Receipt Confirmation\b/i |
| /^subject:.*Failed mail\b/i |
| /^subject:.*Returned mail\b/i |
| /^subject:\s*unable to deliver mail\b/i |
| /^subject:\s.*\baway from my mail\b/i |
| /^subject:\s*Autoreply/i |
| /^subject:\s*Path Too Long fixer/i |
| /^subject:\s*Buy In-Stream preroll video/i |
| /#field0#/ |
| m%content-type:.*text/html%i |
| /x-mailing-list:.*\@vger\.kernel\.org/i |
| # DATE: 25 Jun 01 3:08:39 AM |
| m/DATE:\s*..\s...\s..\s.*:..:..\s..\s*$/i |
| m/nntp-server.caltech.edu/ |
| m/Mail Bomber/ |
| m/X-Mailman-Version:/ |
| m/X-EM-Registration:/ |
| m/x-esmtp:/ |
| m/Local time zone must be set/ |
| m/X-Mailer:.*eMerge/i |
| m/X-Mailer:.Trade-Navigator/i |
| m/From:.*MAILER-DAEMON/i |
| m/X-Mailer:.*Group Mail/ |
| m/^Status:/ |
| m/^X-Status:/ |
| m/X-Set:/ |
| m/^X-Mailer:.*JiXing/ |
| m/^X-Mailer:.*MailXSender/ |
| m!Message-Id:.*<.*\@vger.kernel.org>! |
| m!Message-Id:.*<.*\@zeus.kernel.org>! |
| m/Subject:.*detected a virus / |
| m/Subject:.*Acai/ |
| #m/Anti-Virus/i |
| m/Subject:.*[Vv]irus [Ff]ound/ |
| m/Subject:.*[Vv]irus [Aa]lert/ |
| m/^Subject:\s*Report to Sender/ |
| m/^Subject:.*AntiVir ALARM/ |
| m!^X-Library:\s*Indy! |
| m!Content-Type:\s*application/x-msdownload! |
| m!Conetnt-Type:\s*application/msword! |
| m!MiME-! |
| m!netdev-bounce\@oss\.sgi\.com! |
| m!Undeliverable:! |
| m!Syntax error in! |
| m!^Illegal-Object:! |
| m!Subject:.*paycheck!i |
| m!Subject:.*Urgent\s*Business\s*Request!i |
| m!Subject:.*Urgent\s*Business!i |
| m!Subject:.*Business\s*Request!i |
| m!Subject:.*tiffany\s*uk!i |
| m!Subject:.*pandra\s*charms!i |
| m!Subject:.*Mail delivery failure! |
| m!Subject.*\[SPAM\]! |
| m!Subject:.*Norton AntiVirus detected! |
| m!X-Spam-Flag:.*YES! |
| m!Subject:.*\sSARS\s!i |
| m!Subject:.*MMS Notification! |
| m!Subject:.*Rejected Mail! |
| m!Subject:.*Report to Recipient! |
| m!Subject:.*You sent potentially! |
| m!WAVA Postmaster! |
| m!^SUBJECT:! |
| m!Delivered-To:! |
| m!^From:\s*Majordomo! |
| m!Subject:\s+Out of Office AutoReply! |
| #m!Content-Type: multipart/alternative! |
| m!From:.*amavisd-new! |
| m!Subject:.*found.*virus!i |
| m!Subject:.*As Seen on CNN!i |
| m!Subject:.*Mail Delivery! |
| m!Subject:.*Essential.*Software.*On.*CD!i |
| m!ScanMail for Lotus Notes! |
| m!InternetBank Agreement! |
| m!X-WEBC-Mail-From-Script:! |
| m!X-Mailer: RLSP Mailer! |
| m!Subject: Rediff\'s Auto Response! |
| m!Email account utilization warning! |
| m!From:.*Lyris.List! |
| m!Listar command results! |
| m!EHLO vger.kernel.org! |
| m!HELO vger.kernel.org! |
| m!stk-sub! |
| m!owner-majordomo\@! |
| m!LOTTERY!i |
| m!SWEEPSTAKE!i |
| m!GSM wireless terminal from China! |
| m!http://vk.com/! |
| m!eyari\.com!i |
| END |
| |
| # TABOO BODY |
| # |
| # Taboo body contents to catch and forward to the approval address |
| # |
| # For example: |
| # $global_taboo_body = <<'END'; |
| # /taboo topic/i |
| # /another taboo/i |
| # END |
| # NOTE! Using ' instead of " in the next line is VERY IMPORTANT!!! |
| # |
| $global_taboo_body = <<'END'; |
| m!MailEnable: You are not permitted to post to the list!o |
| m!^X-Mailing-List: !o |
| m!^List-ID: !o |
| m%Content-Type:.*text/html%io |
| m%Content-Type:.*multipart/alternative%io |
| #m/charset=.*windows-/io |
| m!Webmail Administrator!o |
| m!Re-type Password!o |
| m!FROM THE DESK OF!io |
| m!Your mailbox quota!io |
| m!Dear lucky winner!io |
| m!Welcome to our Newsletter!o |
| END |
| |
| #TABOO-END |