filter_innd: Correctly read folded headers.
[usenet/INN.git] / filter / cleanfeed.local
index e3b872c..ef678c1 100644 (file)
@@ -1,8 +1,7 @@
-# vim: set syntax=perl ts=4 ai si:
+# vim: set tabstop=4 shiftwidth=4 expandtab syntax=perl:
 
 use MIME::Base64();
-use Digest::SHA1();
-use Digest::HMAC_SHA1();
+use Digest::SHA();
 
 #
 # local_filter_cancel
@@ -37,10 +36,13 @@ sub verify_cancel($$$) {
    for my $line(split(/\s*\n/, $headers))    {
       if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
          $headers{$1} = $2;
+         $lastkey = $1;
+      } elsif ($line =~ m/^\s+(.*)/ and defined($lastkey)) {
+         $headers{$lastkey} .= ' ' . $1;
       }
    }
-
    my $lock = $headers{'Cancel-Lock'};
+
    if (defined($lock)) {
       my $key = $r_hdr->{'Cancel-Key'} || return "$descr of $target without Cancel-Key";
       #return verify_cancel_key($key, $lock, ' target=' . $target);
@@ -78,7 +80,7 @@ sub verify_cancel_key($$$) {
 
       my $key;
       if ($1 eq 'sha1') {
-         $key = Digest::SHA1::sha1($2); }
+         $key = Digest::SHA::sha1($2); }
       elsif ($1 eq 'md5') {
          $key = Digest::MD5::md5($2);
       }
This page took 0.012808 seconds and 4 git commands to generate.