Specifically regarding the quoted-printable stuff.. my diff must have been
off an older version. This is probably a better representation of your
changes:
@@ -574,15 +574,22 @@
my $line;
my @qp_continuations;
while ( $line = $txn->body_getline ) {
+ chomp $line;
if ( $line =~ /(.*)=$/ ) {
push @qp_continuations, $1;
next;
} elsif ( @qp_continuations ) {
- $line = join '', @qp_continuations, $line;
+ $line = join '', @qp_continuations, $1;
@qp_continuations = ();
}
$self->find_uris($line);
}
+ if ( @qp_continuations ) {
+ $self->log(LOGINFO, "uribl: WARNING: scan_body exiting with line
continuations left. Bad Email?");
+ $line = join('', @qp_continuations, $line);
+ @qp_continuations = ();
+ $self->find_uris($line);
+ }
}
The first and last change should certainly go in, but what about this:
if ( $line =~ /(.*)=$/ ) {
push @qp_continuations, $1;
next;
} elsif ( @qp_continuations ) {
- $line = join '', @qp_continuations, $line;
+ $line = join '', @qp_continuations, $1;
@qp_continuations = ();
}
Won't $1 only be defined when the condition in the 'if' is met, thus
making your change equivalent to:
$line = join '', $qp_continuations;
I'm not sure but it seems like that change doesn't belong..
-Jared