Sujet : Re: viré de eternal-september.org ?
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.usenet.abus.dDate : 16. May 2022, 15:41:44
Autres entêtes
Organisation : Posted through ALPHANET
Message-ID : <t5tnr8$rls$1@shakotay.alphanet.ch>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-20-amd64 (x86_64))
Marc SCHAEFER <
schaefer@alphanet.ch> wrote:
Donc, quand un Cancel-Lock est placé en entête de continuation, il ne
peut être annulé par un Cancel-Key correct. Et ce sont bien des espaces
0x20.
Le bug est dans cleanfeed.local, fonction verify_cancel():
my $headers = INN::head($target) || return "$descr of non-existing ID $target";
my %headers;
for my $line(split(/\s*\n/, $headers)) {
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
# assuming low/upcase normalisation by INN
$headers{$1} = $2;
}
}
Ceci ne traite pas les lignes de continuation.
Ce code si:
my %headers;
my $previous;
for my $line(split(/\s*\n/, $art)) {
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
# assuming low/upcase normalisation by INN
$headers{$1} = $2;
$previous = $1;
}
elsif ($line =~ m/^\s+(.*)/) {
if (defined($previous)) {
$headers{$previous} .= " " . $1;
}
else {
INN::syslog('notice', 'garbled line: ' . $line);
}
}
}