You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2008/08/28 16:28:03 UTC

svn commit: r689835 - in /spamassassin/trunk/lib/Mail/SpamAssassin: ./ Plugin/

Author: mmartinec
Date: Thu Aug 28 07:28:02 2008
New Revision: 689835

URL: http://svn.apache.org/viewvc?rev=689835&view=rev
Log:
Changed PMS::get and its calls for compatibility regarding a
default value: if the requested header field wasn't found,
return a default value as specified by the caller: if defval
argument is present it represents a default value even if undef;
if defval argument is absent a default value is an empty string
for compatibility

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/MailingList.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HTMLEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WhiteListSubject.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/MailingList.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/MailingList.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/MailingList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/MailingList.pm Thu Aug 28 07:28:02 2008
@@ -44,12 +44,12 @@
 # List-Subscribe: <mailto:[a-zA-Z\.-]+-subscribe@
 sub detect_ml_ezmlm {
     my ($self) = @_;
-    return 0 unless $self->get('mailing-list','') =~ /ezmlm$/;
-    return 0 unless $self->get('precedence','') eq "bulk\n";
-    return 0 unless $self->get('list-post','') =~ /^<mailto:/;
-    return 0 unless $self->get('list-help','') =~ /^<mailto:/;
-    return 0 unless $self->get('list-unsubscribe','') =~ /<mailto:[a-zA-Z\.-]+-unsubscribe\@/;
-    return 0 unless $self->get('list-subscribe','') =~ /<mailto:[a-zA-Z\.-]+-subscribe\@/;
+    return 0 unless $self->get('mailing-list') =~ /ezmlm$/;
+    return 0 unless $self->get('precedence') eq "bulk\n";
+    return 0 unless $self->get('list-post') =~ /^<mailto:/;
+    return 0 unless $self->get('list-help') =~ /^<mailto:/;
+    return 0 unless $self->get('list-unsubscribe') =~ /<mailto:[a-zA-Z\.-]+-unsubscribe\@/;
+    return 0 unless $self->get('list-subscribe') =~ /<mailto:[a-zA-Z\.-]+-subscribe\@/;
     return 1; # assume ezmlm then.
 }
 
@@ -75,23 +75,23 @@
 #  X-BeenThere: 
 sub detect_ml_mailman {
     my ($self) = @_;
-    return 0 unless $self->get('x-mailman-version','') =~ /^\d/;
-    return 0 unless $self->get('precedence','') =~ /^(?:bulk|list)$/;
+    return 0 unless $self->get('x-mailman-version') =~ /^\d/;
+    return 0 unless $self->get('precedence') =~ /^(?:bulk|list)$/;
 
-    if ($self->get('x-list-administrivia','') =~ /yes/ ||
-        $self->get('subject','') =~ /mailing list memberships reminder$/)
+    if ($self->get('x-list-administrivia') =~ /yes/ ||
+        $self->get('subject') =~ /mailing list memberships reminder$/)
     {
-        return 0 unless $self->get('errors-to');
-        return 0 unless $self->get('x-beenthere');
-        return 0 unless $self->get('x-no-archive','') =~ /yes/;
+        return 0 unless defined $self->get('errors-to',undef);
+        return 0 unless defined $self->get('x-beenthere',undef);
+        return 0 unless $self->get('x-no-archive') =~ /yes/;
         return 1;
     }
 
-    return 0 unless $self->get('list-id');
-    return 0 unless $self->get('list-help','') =~ /^<mailto:/;
-    return 0 unless $self->get('list-post','') =~ /^<mailto:/;
-    return 0 unless $self->get('list-subscribe','') =~ /<mailto:.*=subscribe>/;
-    return 0 unless $self->get('list-unsubscribe','') =~ /<mailto:.*=unsubscribe>/;
+    return 0 unless defined $self->get('list-id',undef);
+    return 0 unless $self->get('list-help') =~ /^<mailto:/;
+    return 0 unless $self->get('list-post') =~ /^<mailto:/;
+    return 0 unless $self->get('list-subscribe') =~ /<mailto:.*=subscribe>/;
+    return 0 unless $self->get('list-unsubscribe') =~ /<mailto:.*=unsubscribe>/;
     return 1; # assume this is a valid mailman list
 }
 
@@ -123,11 +123,11 @@
 # sub detect_ml_listbuilder {
 #   my ($self, $full) = @_;
 # 
-#   my $reply = $self->get('Reply-To:addr','');
+#   my $reply = $self->get('Reply-To:addr');
 #   if ($reply !~ /\@lb.bcentral.com/) { return 0; }
 # 
 #   # Received: from unknown (HELO lbrout14.listbuilder.com) (204.71.191.9)
-#   my $rcvd = $self->get('received','');
+#   my $rcvd = $self->get('received');
 #   return 0 unless ($rcvd =~ /\blbrout\d+\.listbuilder\.com\b/i);
 #   return 0 unless ($rcvd =~ /\b204\.71\.191\.\d+\b/);
 # 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Thu Aug 28 07:28:02 2008
@@ -982,7 +982,7 @@
 	my $full = $1;
         my $tag = $2;
         my $result = $self->_get_tag($tag,$3);
-        (defined $result) ? $result : $full;
+        defined $result ? $result : $full;
       }ge;
 
   return $text;
@@ -1119,7 +1119,7 @@
 
   # tag data also comes from $self->{tag_data}->{TAG}
 
-  $tag = "" unless defined $tag; # can be "0", so use defined test
+  $tag = "" unless defined $tag; # can be "0", so use a defined test
 
   %tags = ( YESNO     => sub {    $self->_get_tag_value_for_yesno() },
   
@@ -1214,7 +1214,7 @@
 
 	    HEADER => sub {
 	      my $hdr = shift || return;
-	      return $self->get($hdr);
+	      return $self->get($hdr,undef);
 	    },
 
             TIMING => sub {
@@ -1616,9 +1616,10 @@
     $cache->{$_[1]} = $found;
   }
   # if the requested header wasn't found, we should return a default value
-  # as specified by the caller; if defval argument is present it represents
-  # a default value even if undef
-  return (defined $found ? $found : $_[2]);
+  # as specified by the caller: if defval argument is present it represents
+  # a default value even if undef; if defval argument is absent a default
+  # value is an empty string for upwards compatibility
+  return (defined $found ? $found : @_ > 2 ? $_[2] : '');
 }
 
 ###########################################################################
@@ -1781,8 +1782,8 @@
   my %parsed = map { $_ => 'parsed' } $self->_get_parsed_uri_list();
 
   # Look for the domain in DK/DKIM headers
-  my $dk = join(" ", grep {defined} ( $self->get('DomainKey-Signature'),
-                                      $self->get('DKIM-Signature') ));
+  my $dk = join(" ", grep {defined} ( $self->get('DomainKey-Signature',undef),
+                                      $self->get('DKIM-Signature',undef) ));
   while ($dk =~ /\bd\s*=\s*([^;]+)/g) {
     my $dom = $1;
     $dom =~ s/\s+//g;
@@ -2244,7 +2245,7 @@
   # This will prevent us falling through and picking up inappropriate headers.
   if (defined $self->{conf}->{envelope_sender_header}) {
     # make sure we get the most recent copy - there can be only one EnvelopeSender.
-    $envf = $self->get($self->{conf}->{envelope_sender_header}.":addr");
+    $envf = $self->get($self->{conf}->{envelope_sender_header}.":addr",undef);
     # ok if it contains an "@" sign, or is "" (ie. "<>" without the < and >)
     goto ok if defined $envf && ($envf =~ /\@/ || $envf =~ /^$/);
     # Warn them if it's configured, but not there or not usable.
@@ -2289,8 +2290,8 @@
   # lines, we cannot trust any Envelope-From headers, since they're likely to
   # be incorrect fetchmail guesses.
 
-  if ($self->get("X-Sender",'') =~ /\@/) {
-    my $rcvd = join(' ', $self->get("Received",''));
+  if ($self->get("X-Sender") =~ /\@/) {
+    my $rcvd = join(' ', $self->get("Received"));
     if ($rcvd =~ /\(fetchmail/) {
       dbg("message: X-Sender and fetchmail signatures found, cannot trust envelope-from");
       return;
@@ -2298,10 +2299,10 @@
   }
 
   # procmailrc notes this (we now recommend adding it to Received instead)
-  if ($envf = $self->get("X-Envelope-From",'')) {
+  if ($envf = $self->get("X-Envelope-From")) {
     # heuristic: this could have been relayed via a list which then used
     # a *new* Envelope-from.  check
-    if ($self->get("ALL",'') =~ /(?:^|\n)Received:\s.*\nX-Envelope-From:\s/s) {
+    if ($self->get("ALL") =~ /(?:^|\n)Received:\s.*\nX-Envelope-From:\s/s) {
       dbg("message: X-Envelope-From header found after 1 or more Received lines, cannot trust envelope-from");
       return;
     } else {
@@ -2310,10 +2311,10 @@
   }
 
   # qmail, new-inject(1)
-  if ($envf = $self->get("Envelope-Sender",'')) {
+  if ($envf = $self->get("Envelope-Sender")) {
     # heuristic: this could have been relayed via a list which then used
     # a *new* Envelope-from.  check
-    if ($self->get("ALL",'') =~ /(?:^|\n)Received:\s.*\nEnvelope-Sender:\s/s) {
+    if ($self->get("ALL") =~ /(?:^|\n)Received:\s.*\nEnvelope-Sender:\s/s) {
       dbg("message: Envelope-Sender header found after 1 or more Received lines, cannot trust envelope-from");
     } else {
       goto ok;
@@ -2327,10 +2328,10 @@
   #   data.  This use of return-path is required; mail systems MUST support
   #   it.  The return-path line preserves the information in the <reverse-
   #   path> from the MAIL command.
-  if ($envf = $self->get("Return-Path",'')) {
+  if ($envf = $self->get("Return-Path")) {
     # heuristic: this could have been relayed via a list which then used
     # a *new* Envelope-from.  check
-    if ($self->get("ALL",'') =~ /(?:^|\n)Received:\s.*\nReturn-Path:\s/s) {
+    if ($self->get("ALL") =~ /(?:^|\n)Received:\s.*\nReturn-Path:\s/s) {
       dbg("message: Return-Path header found after 1 or more Received lines, cannot trust envelope-from");
     } else {
       goto ok;
@@ -2370,7 +2371,7 @@
 
   my $cur_rcvd_index = -1;  # none found yet
   my $result = '';
-  foreach my $hdr (split("\n", $self->get('ALL',''))) {
+  foreach my $hdr (split("\n", $self->get('ALL'))) {
     if ($hdr =~ /^received: /i) {
       $cur_rcvd_index++;
       next if (defined $start_rcvd && !$include_start_rcvd &&
@@ -2451,7 +2452,7 @@
   my @addrs;
 
   # Resent- headers take priority, if present. see bug 672
-  my $resent = $self->get('Resent-From');
+  my $resent = $self->get('Resent-From',undef);
   if (defined $resent && $resent =~ /\S/) {
     @addrs = $self->{main}->find_all_addrs_in_line ($resent);
   }
@@ -2465,7 +2466,7 @@
     # bug 3366: some addresses come in as 'foo@bar...', which is invalid.
     # so deal with the multiple periods.
     ## no critic
-    @addrs = map { tr/././s; $_ } grep { defined($_) && $_ ne '' }
+    @addrs = map { tr/././s; $_ } grep { $_ ne '' }
         ($self->get('From:addr'),		# std
          $self->get('Envelope-Sender:addr'),	# qmail: new-inject(1)
          $self->get('Resent-Sender:addr'),	# procmailrc manpage
@@ -2491,8 +2492,7 @@
   my @addrs;
 
   # Resent- headers take priority, if present. see bug 672
-  my $resent = join('', grep {defined} ($self->get('Resent-To'),
-                                        $self->get('Resent-Cc')));
+  my $resent = join('', $self->get('Resent-To'), $self->get('Resent-Cc'));
   if ($resent =~ /\S/) {
     @addrs = $self->{main}->find_all_addrs_in_line($resent);
   } else {
@@ -2501,7 +2501,7 @@
     # since it does not add a helpful header like exim, qmail
     # or Postfix do.
     #
-    my $rcvd = $self->get('Received','');
+    my $rcvd = $self->get('Received');
     $rcvd =~ s/\n[ \t]+/ /gs;
     $rcvd =~ s/\n+/\n/gs;
 
@@ -2512,7 +2512,7 @@
     }
 
     @addrs = $self->{main}->find_all_addrs_in_line (
-       join('', grep { defined($_) && $_ ne '' } (
+       join('',
 	 join(" ", @rcvdaddrs)."\n",
          $self->get('To'),			# std 
   	 $self->get('Apparently-To'),		# sendmail, from envelope
@@ -2525,7 +2525,7 @@
 	 $self->get('X-Original-To'),		# procmail quick start
 	 $self->get('X-Rcpt-To'),		# procmail quick start
 	 $self->get('X-Real-To'),		# procmail quick start
-	 $self->get('Cc'))));			# std
+	 $self->get('Cc')));			# std
     # those are taken from various sources; thanks to Nancy McGough, who
     # noted some in <http://www.ii.com/internet/robots/procmail/qs/#envelope>
   }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm Thu Aug 28 07:28:02 2008
@@ -339,7 +339,7 @@
     my $timer = $self->{main}->time_method("total_awl");
 
     my $from = lc $pms->get('From:addr');
-    return 0 unless defined $from && $from =~ /\S/;
+    return 0 unless $from =~ /\S/;
 
     # find the earliest usable "originating IP".  ignore private nets
     my $origip;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm Thu Aug 28 07:28:02 2008
@@ -545,8 +545,8 @@
     while(my($k,$v) = each %ordered) {
       my($hdrname, $def) = split(/\t/, $k, 2);
       $self->add_evalstr ('
-        $hval = $self->get(q{'.$hdrname.'}' .
-                           (!defined($def) ? '' : ', q{'.$def.'}') . ');
+        $hval = $self->get(q{'.$hdrname.'}, ' .
+                           (!defined($def) ? 'undef' : 'q{'.$def.'}') . ');
       ');
       foreach my $rulename (@{$v}) {
         if ($self->{main}->{use_rule_subs}) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm Thu Aug 28 07:28:02 2008
@@ -401,7 +401,7 @@
 
   # short-circuit if there's already a X-DCC header with value of
   # "bulk" from an upstream DCC check
-  if ($permsgstatus->get('ALL','') =~
+  if ($permsgstatus->get('ALL') =~
       /^(X-DCC-([^:]{1,80})?-?Metrics:.*bulk.*)$/m) {
     $permsgstatus->{dcc_response} = $1;
     return;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm Thu Aug 28 07:28:02 2008
@@ -322,7 +322,7 @@
   $scan->{dkim_valid_author_sig} = 0;
   $scan->{dkim_key_testing} = 0;
   $scan->{dkim_author_address} =
-    $scan->get('from:addr')  if !defined $scan->{dkim_author_address};
+    $scan->get('from:addr',undef)  if !defined $scan->{dkim_author_address};
 
 # my $verifier = Mail::DKIM::Verifier->new();         # per new docs
   my $verifier = Mail::DKIM::Verifier->new_object();  # old style???
@@ -456,7 +456,7 @@
   $scan->{dkim_signall} = 0;
   $scan->{dkim_policy_testing} = 0;
   $scan->{dkim_author_address} =
-    $scan->get('from:addr')  if !defined $scan->{dkim_author_address};
+    $scan->get('from:addr',undef)  if !defined $scan->{dkim_author_address};
 
   return unless $self->_dkim_load_modules();
 
@@ -532,7 +532,7 @@
 
   my $author = $scan->{dkim_author_address};
   if (!defined $author) {
-    $scan->{dkim_author_address} = $author = $scan->get('from:addr');
+    $scan->{dkim_author_address} = $author = $scan->get('from:addr',undef);
   }
   if (!defined $author || $author eq '') {
     dbg("dkim: check_dkim_whitelist: could not find author address");

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm Thu Aug 28 07:28:02 2008
@@ -116,11 +116,11 @@
   my ($self, $pms) = @_;
   my %acctags;
 
-  if ($pms->get('EnvelopeFrom:addr','') =~ /[@.]a--([a-z0-9]{3,})\./i) {
+  if ($pms->get('EnvelopeFrom:addr') =~ /[@.]a--([a-z0-9]{3,})\./i) {
     (my $tag = $1) =~ tr/A-Z/a-z/;
     $acctags{$tag} = -1;
   }
-  my $accreditor_field = $pms->get('Accreditor');
+  my $accreditor_field = $pms->get('Accreditor',undef);
   if (defined $accreditor_field) {
     my @accreditors = split(/,/, $accreditor_field);
     foreach my $accreditor (@accreditors) {
@@ -170,7 +170,7 @@
   my $IP_ADDRESS = IP_ADDRESS;
   my @originating;
   for my $header ('X-Yahoo-Post-IP', 'X-Originating-IP', 'X-Apparently-From', 'X-SenderIP') {
-    my $str = $pms->get($header);
+    my $str = $pms->get($header,undef);
     next unless defined $str && $str ne '';
     push (@originating, ($str =~ m/($IP_ADDRESS)/g));
   }
@@ -299,7 +299,7 @@
 # this only checks the address host name and not the domain name because
 # using the domain name had much worse results for dsn.rfc-ignorant.org
 sub check_rbl_envfrom {
-  _check_rbl_addresses(@_, $_[1]->get('EnvelopeFrom:addr'));
+  _check_rbl_addresses(@_, $_[1]->get('EnvelopeFrom:addr',undef));
 }
 
 sub _check_rbl_addresses {
@@ -334,7 +334,7 @@
   my ($self, $pms, $rule) = @_;
 
   my $host;
-  for my $from ($pms->get('EnvelopeFrom:addr')) {
+  for my $from ($pms->get('EnvelopeFrom:addr',undef)) {
     next unless defined $from;
 
     $from =~ tr/././s;		# bug 3366

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HTMLEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HTMLEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HTMLEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HTMLEval.pm Thu Aug 28 07:28:02 2008
@@ -148,7 +148,7 @@
   my ($self, $pms, undef, $ratio) = @_;
 
   my $subject = $pms->get('Subject');
-  if (!defined $subject || $subject eq '') {
+  if ($subject eq '') {
     return 0;
   }
   my $max = 0;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Thu Aug 28 07:28:02 2008
@@ -85,7 +85,7 @@
   my ($self, $pms) = @_;
   local ($_);
 
-  $_ = $pms->get('Received','');
+  $_ = $pms->get('Received');
   s/\s/ /gs;
 
   # this is the hostname format used by AOL for their relays. Spammers love 
@@ -139,7 +139,7 @@
 sub check_for_unique_subject_id {
   my ($self, $pms) = @_;
   local ($_);
-  $_ = lc $pms->get('Subject','');
+  $_ = lc $pms->get('Subject');
   study;
 
   my $id = 0;
@@ -266,7 +266,7 @@
 
   $header .= ":raw" unless ($header eq "ALL" || $header =~ /:raw$/);
   my $str = $pms->get($header);
-  return 0 unless defined $str && $str ne '';
+  return 0 unless $str ne '';
 
   # avoid overlap between tests
   if ($header eq "ALL") {
@@ -294,10 +294,10 @@
 sub gated_through_received_hdr_remover {
   my ($self, $pms) = @_;
 
-  my $txt = $pms->get("Mailing-List");
+  my $txt = $pms->get("Mailing-List",undef);
   if (defined $txt && $txt =~ /^contact \S+\@\S+\; run by ezmlm$/) {
-    my $dlto = $pms->get("Delivered-To",'');
-    my $rcvd = $pms->get("Received",'');
+    my $dlto = $pms->get("Delivered-To");
+    my $rcvd = $pms->get("Received");
 
     # ensure we have other indicative headers too
     if ($dlto =~ /^mailing list \S+\@\S+/ &&
@@ -307,8 +307,8 @@
     }
   }
 
-  my $rcvd = $pms->get("Received");
-  if (!defined $rcvd || $rcvd !~ /\S/) {
+  my $rcvd = $pms->get("Received",undef);
+  if (!defined $rcvd) {
     # we have no Received headers!  These tests cannot run in that case
     return 1;
   }
@@ -330,7 +330,7 @@
   $pms->{hotmail_addr_with_forged_hotmail_received} = 0;
   $pms->{hotmail_addr_but_no_hotmail_received} = 0;
 
-  my $rcvd = $pms->get('Received','');
+  my $rcvd = $pms->get('Received');
   $rcvd =~ s/\s+/ /gs;		# just spaces, simplify the regexp
 
   return if ($rcvd =~
@@ -339,7 +339,7 @@
   # Microsoft passes Hotmail mail directly to MSN Group servers.
   return if $self->check_for_msn_groups_headers($pms);
 
-  my $ip = $pms->get('X-Originating-Ip');
+  my $ip = $pms->get('X-Originating-Ip',undef);
   my $IP_ADDRESS = IP_ADDRESS;
 
   if (defined $ip && $ip =~ /$IP_ADDRESS/) { $ip = 1; } else { $ip = 0; }
@@ -365,7 +365,7 @@
   } else {
     # check to see if From claimed to be @hotmail.com
     my $from = $pms->get('From:addr');
-    if (!defined $from || $from !~ /\bhotmail\.com$/i) { return; }
+    if ($from !~ /\bhotmail\.com$/i) { return; }
     $pms->{hotmail_addr_but_no_hotmail_received} = 1;
   }
 }
@@ -389,21 +389,21 @@
   my ($self, $pms) = @_;
 
   my $to = $pms->get('To');
-  return 0 unless defined $to && $to =~ /<(\S+)\@groups\.msn\.com>/i;
+  return 0 unless $to =~ /<(\S+)\@groups\.msn\.com>/i;
   my $listname = $1;
 
   # from Theo Van Dinter, see bug 591
   # Updated by DOS, based on messages from Bob Menschel, bug 4301
 
-  return 0 unless $pms->get('Received','') =~
+  return 0 unless $pms->get('Received') =~
                  /from mail pickup service by ((?:p\d\d\.)groups\.msn\.com)\b/;
   my $server = $1;
 
   if ($listname =~ /^notifications$/) {
-    return 0 unless $pms->get('Message-Id','') =~ /^<\S+\@$server>/;
+    return 0 unless $pms->get('Message-Id') =~ /^<\S+\@$server>/;
   } else {
-    return 0 unless $pms->get('Message-Id','') =~ /^<$listname-\S+\@groups\.msn\.com>/;
-    return 0 unless $pms->get('EnvelopeFrom:addr','') =~ /$listname-bounce\@groups\.msn\.com/;
+    return 0 unless $pms->get('Message-Id') =~ /^<$listname-\S+\@groups\.msn\.com>/;
+    return 0 unless $pms->get('EnvelopeFrom:addr') =~ /$listname-bounce\@groups\.msn\.com/;
   }
   return 1;
 
@@ -456,12 +456,12 @@
   my ($self, $pms) = @_;
 
   my $from = $pms->get('From:addr');
-  if (!defined $from || $from !~ /\beudoramail\.com$/i) { return 0; }
+  if ($from !~ /\beudoramail\.com$/i) { return 0; }
 
-  my $rcvd = $pms->get('Received','');
+  my $rcvd = $pms->get('Received');
   $rcvd =~ s/\s+/ /gs;		# just spaces, simplify the regexp
 
-  my $ip = $pms->get('X-Sender-Ip');
+  my $ip = $pms->get('X-Sender-Ip',undef);
   my $IP_ADDRESS = IP_ADDRESS;
   if (defined $ip && $ip =~ /$IP_ADDRESS/) { $ip = 1; } else { $ip = 0; }
 
@@ -486,13 +486,13 @@
   my ($self, $pms) = @_;
 
   my $from = $pms->get('From:addr');
-  if (!defined $from || $from !~ /\byahoo\.com$/i) { return 0; }
+  if ($from !~ /\byahoo\.com$/i) { return 0; }
 
-  my $rcvd = $pms->get('Received','');
+  my $rcvd = $pms->get('Received');
   
-  if ($pms->get("Resent-From",'') ne '' && $pms->get("Resent-To",'') ne '') {
+  if ($pms->get("Resent-From") ne '' && $pms->get("Resent-To") ne '') {
     my $xrcvd = $pms->get("X-Received");
-    $rcvd = $xrcvd  if defined $xrcvd && $xrcvd ne '';
+    $rcvd = $xrcvd  if $xrcvd ne '';
   }
   $rcvd =~ s/\s+/ /gs;		# just spaces, simplify the regexp
 
@@ -543,16 +543,16 @@
   my ($self, $pms) = @_;
 
   my $from = $pms->get('From:addr');
-  if(!defined $from || $from !~ /\bjuno\.com$/i) { return 0; }
+  if ($from !~ /\bjuno\.com$/i) { return 0; }
 
-  if($self->gated_through_received_hdr_remover($pms)) { return 0; }
+  if ($self->gated_through_received_hdr_remover($pms)) { return 0; }
 
   my $xorig = $pms->get('X-Originating-IP');
-  my $xmailer = $pms->get('X-Mailer','');
-  my $rcvd = $pms->get('Received','');
+  my $xmailer = $pms->get('X-Mailer');
+  my $rcvd = $pms->get('Received');
   my $IP_ADDRESS = IP_ADDRESS;
 
-  if (defined $xorig && $xorig ne '') {
+  if ($xorig ne '') {
     # New style Juno has no X-Originating-IP header, and other changes
     if($rcvd !~ /from.*\b(?:juno|untd)\.com.*[\[\(]$IP_ADDRESS[\]\)].*by/
         && $rcvd !~ / cookie\.(?:juno|untd)\.com /) { return 1; }
@@ -574,7 +574,7 @@
 sub check_for_matching_env_and_hdr_from {
   my ($self, $pms) =@_;
   # two blank headers match so don't bother checking
-  return (lc $pms->get('EnvelopeFrom:addr','') eq lc $pms->get('From:addr',''));
+  return (lc $pms->get('EnvelopeFrom:addr') eq lc $pms->get('From:addr'));
 }
 
 sub sorted_recipients {
@@ -608,7 +608,7 @@
 
   # ToCc: pseudo-header works best, but sometimes Bcc: is better
   for ('ToCc', 'Bcc') {
-    my $to = $pms->get($_,'');	# get recipients
+    my $to = $pms->get($_);	# get recipients
     $to =~ s/\(.*?\)//g;	# strip out the (comments)
     push(@inputs, ($to =~ m/([\w.=-]+\@\w+(?:[\w.-]+\.)+\w+)/g));
     last if scalar(@inputs) >= TOCC_SIMILAR_COUNT;
@@ -652,8 +652,8 @@
   my ($self, $pms) = @_;
 
   my $hdr = $pms->get('To');
-  $hdr = $pms->get('Apparently-To')  if !defined $hdr || $hdr eq '';
-  return 1  if !defined $hdr || $hdr eq '';
+  $hdr = $pms->get('Apparently-To')  if $hdr eq '';
+  return 1  if $hdr eq '';
 
   return 0;
 }
@@ -662,7 +662,7 @@
   my ($self, $pms) = @_;
   local ($_);
 
-  my $rcv = $pms->get('Received','');
+  my $rcv = $pms->get('Received');
 
   # e.g.
   # Received: from mail3.icytundra.com by gw05 with ESMTP; Thu, 21 Jun 2001 02:28:32 -0400
@@ -741,7 +741,7 @@
 
   my (@received);
   my $received = $pms->get('Received');
-  if (defined $received && $received ne '') {
+  if ($received ne '') {
     @received = grep {$_ =~ m/\S/} (split(/\n/,$received));
   }
   # if we have no Received: headers, chances are we're archived mail
@@ -890,7 +890,7 @@
 
 sub subject_is_all_caps {
    my ($self, $pms) = @_;
-   my $subject = $pms->get('Subject','');
+   my $subject = $pms->get('Subject');
 
    $subject =~ s/^\s+//;
    $subject =~ s/\s+$//;
@@ -901,7 +901,7 @@
    # now, check to see if the subject is encoded using a non-ASCII charset.
    # If so, punt on this test to avoid FPs.  We just list the known charsets
    # this test will FP on, here.
-   my $subjraw = $pms->get('Subject:raw','');
+   my $subjraw = $pms->get('Subject:raw');
    my $CLTFAC = Mail::SpamAssassin::Constants::CHARSETS_LIKELY_TO_FP_AS_CAPS;
    if ($subjraw =~ /=\?${CLTFAC}\?/i) {
      return 0;
@@ -914,9 +914,9 @@
   my ($self, $pms, $test) = @_;
 
   my $full_to = $pms->get('To:addr');
-  return 0 unless defined $full_to && $full_to ne '';
+  return 0 unless $full_to ne '';
 
-  my $subject = $pms->get('Subject','');
+  my $subject = $pms->get('Subject');
 
   if ($test eq "address") {
     return $subject =~ /\b\Q$full_to\E\b/i;	# "user@domain.com"
@@ -943,8 +943,7 @@
   local ($_);
 
   my $id = $pms->get('MESSAGEID');
-  return 0 if !defined $id ||
-              $id !~ /^<[0-9a-f]{4}([0-9a-f]{8})\$[0-9a-f]{8}\$[0-9a-f]{8}\@/;
+  return 0 if $id !~ /^<[0-9a-f]{4}([0-9a-f]{8})\$[0-9a-f]{8}\$[0-9a-f]{8}\@/;
 
   my $timetoken = hex($1);
   my $x = 0.0023283064365387;
@@ -952,13 +951,13 @@
 
   my $fudge = 250;
 
-  $_ = $pms->get('Date','');
+  $_ = $pms->get('Date');
   $_ = Mail::SpamAssassin::Util::parse_rfc822_date($_) || 0;
   my $expected = int (($_ * $x) + $y);
   my $diff = $timetoken - $expected;
   return 0 if (abs($diff) < $fudge);
 
-  $_ = $pms->get('Received','');
+  $_ = $pms->get('Received');
   /(\s.?\d+ \S\S\S \d+ \d+:\d+:\d+ \S+).*?$/;
   $_ = Mail::SpamAssassin::Util::parse_rfc822_date($_) || 0;
   $expected = int(($_ * $x) + $y);
@@ -972,14 +971,14 @@
   local ($_);
 
   # Lyris eats message-ids.  also some ezmlm, I think :(
-  $_ = $pms->get("List-Unsubscribe",'');
+  $_ = $pms->get("List-Unsubscribe");
   return 1 if (/<mailto:(?:leave-\S+|\S+-unsubscribe)\@\S+>$/);
 
   # ezmlm again
   if($self->gated_through_received_hdr_remover($pms)) { return 1; }
 
   # Allen notes this as 'Wacky sendmail version?'
-  $_ = $pms->get("Received",'');
+  $_ = $pms->get("Received");
   return 1 if /\/CWT\/DCE\)/;
 
   # Apr  2 2003 jm: iPlanet rewrites lots of stuff, including Message-IDs
@@ -999,7 +998,7 @@
 sub check_unresolved_template {
   my ($self, $pms) = @_;
 
-  my $all = $pms->get('ALL','');  # cached access
+  my $all = $pms->get('ALL');	# cached access
   $all =~ s/\n[ \t]+/ /gs;	# fix continuation lines
   
   for my $header (split(/\n/, $all)) {
@@ -1016,8 +1015,8 @@
 sub check_ratware_name_id {
   my ($self, $pms) = @_;
 
-  my $mid = $pms->get('MESSAGEID','');
-  my $from = $pms->get('From','');
+  my $mid = $pms->get('MESSAGEID');
+  my $from = $pms->get('From');
   if ($mid =~ m/<[A-Z]{28}\.([^>]+?)>/) {
      if ($from =~ m/\"[^\"]+\"\s*<\Q$1\E>/) {
        return 1;
@@ -1032,8 +1031,7 @@
   my $to = $pms->get('To:addr');
   my $from = $pms->get('EnvelopeFrom:addr');
 
-  return 0 unless defined $from && $from ne '';
-  return 0 unless defined $to   && $to   ne '';
+  return 0 if $from eq '' || $to eq '';
   return 0 if $from =~ /^SRS\d=/;
 
   if ($to =~ /^([^@]+)@(.+)$/) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm Thu Aug 28 07:28:02 2008
@@ -69,7 +69,7 @@
 sub check_for_faraway_charset {
   my ($self, $pms, $body) = @_;
 
-  my $type = $pms->get('Content-Type');
+  my $type = $pms->get('Content-Type',undef);
 
   my @locales = Mail::SpamAssassin::Util::get_my_locales($self->{main}->{conf}->{ok_locales});
 
@@ -106,7 +106,7 @@
   my ($self, $pms) = @_;
 
   my $ctype = $pms->get('Content-Type');
-  return 1 if (defined($ctype) && $ctype =~ m@^text/html@i);
+  return 1 if $ctype =~ m{^text/html}i;
 
   $self->_check_attachments($pms) unless exists $pms->{mime_body_html_count};
   return ($pms->{mime_body_html_count} > 0);
@@ -117,7 +117,7 @@
   my ($self, $pms) = @_;
 
   my $ctype = $pms->get('Content-Type');
-  return 1 if (defined($ctype) && $ctype =~ m@^text/html@i);
+  return 1 if $ctype =~ m{^text/html}i;
 
   $self->_check_attachments($pms) unless exists $pms->{mime_body_html_count};
   return ($pms->{mime_body_html_count} > 0 &&
@@ -427,7 +427,7 @@
   #
   $self->_check_attachments($pms) unless exists $pms->{mime_checked_attachments};
   my @charsets;
-  my $type = $pms->get('Content-Type');
+  my $type = $pms->get('Content-Type',undef);
   $type = get_charset_from_ct_line($type)  if defined $type;
   push (@charsets, $type)  if defined $type;
   if (defined $pms->{mime_html_charsets}) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm Thu Aug 28 07:28:02 2008
@@ -111,9 +111,9 @@
 sub sent_by_applemail {
   my ($self, $pms) = @_;
 
-  return 0 unless ($pms->get("MIME-Version",'') =~ /Apple Message framework/);
-  return 0 unless ($pms->get("X-Mailer",'') =~ /^Apple Mail \(\d+\.\d+\)/);
-  return 0 unless ($pms->get("Message-Id",'') =~
+  return 0 unless ($pms->get("MIME-Version") =~ /Apple Message framework/);
+  return 0 unless ($pms->get("X-Mailer") =~ /^Apple Mail \(\d+\.\d+\)/);
+  return 0 unless ($pms->get("Message-Id") =~
 		   /^<[A-F0-9]+(?:-[A-F0-9]+){4}\@\S+.\S+>$/);
   return 1;
 }
@@ -209,7 +209,7 @@
   }
 
   my $from = $pms->get('From:addr');
-  if (!defined $from || $from !~ /\b\Q$domain\E/i) {
+  if ($from !~ /\b\Q$domain\E/i) {
       # '0e0' is Perl idiom for "true but zero":
       $pms->{from_domain_in_received}->{$domain} = '0e0';
       return 0;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm Thu Aug 28 07:28:02 2008
@@ -308,7 +308,7 @@
     $scanner->{checked_for_received_spf_header} = 1;
     dbg("spf: checking to see if the message has a Received-SPF header that we can use");
 
-    my @internal_hdrs = split("\n", $scanner->get('ALL-INTERNAL',''));
+    my @internal_hdrs = split("\n", $scanner->get('ALL-INTERNAL'));
     unless ($scanner->{conf}->{use_newest_received_spf_header}) {
       # look for the LAST (earliest in time) header, it'll be the most accurate
       @internal_hdrs = reverse(@internal_hdrs);
@@ -658,7 +658,7 @@
     # from the Return-Path, X-Envelope-From, or whatever header.
     # it's better to get it from Received though, as that is updated
     # hop-by-hop.
-    $sender = $scanner->get("EnvelopeFrom:addr",'');
+    $sender = $scanner->get("EnvelopeFrom:addr");
   }
 
   if (!$sender) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm Thu Aug 28 07:28:02 2008
@@ -239,7 +239,7 @@
 sub check_mailfrom_matches_rcvd {
   my ($self, $pms) = @_;
   my $sender = $pms->get("EnvelopeFrom:addr");
-  return 0  if !defined $sender || $sender eq '';
+  return 0  if $sender eq '';
   return $self->_check_addr_matches_rcvd($pms,$sender);
 }
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WhiteListSubject.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WhiteListSubject.pm?rev=689835&r1=689834&r2=689835&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WhiteListSubject.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WhiteListSubject.pm Thu Aug 28 07:28:02 2008
@@ -112,7 +112,7 @@
 
   my $subject = $permsgstatus->get('Subject');
 
-  return 0 unless defined $subject && $subject ne '';
+  return 0 unless $subject ne '';
 
   return $self->_check_subject($permsgstatus->{conf}->{whitelist_subject}, $subject);
 }
@@ -122,7 +122,7 @@
 
   my $subject = $permsgstatus->get('Subject');
 
-  return 0 unless defined $subject && $subject ne '';
+  return 0 unless $subject ne '';
 
   return $self->_check_subject($permsgstatus->{conf}->{blacklist_subject}, $subject);
 }