Sujet : Re: Champ cancel-lock multiligne
De : yamo (at) *nospam* beurdin.invalid (yamo')
Groupes : fr.comp.usenet.serveursDate : 19. May 2022, 12:16:09
Autres entêtes
Organisation : <http://pasdenom.info/news.html>
Message-ID : <t658tq$8tj$1@rasp.pasdenom.info>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.12
Marc SCHAEFER a tapoté le 19/05/2022 13:12:
yamo' <yamo@beurdin.invalid> wrote:
Tu peux.
Le diff ressemble à quoi?
J'avais fait une erreur de nom de variable dans une des premières
versions du patch, et comme le script n'est pas en use strict; use
warnings; c'était invisible.
Depuis, avec la version:
https://nnrp.alphanet.ch/newsgroup/fr.comp.usenet.serveurs/%3Ct5u0k3$5op$1@shakotay.alphanet.ch%3E
Le bug était d'utiliser une variable inexistante $art plutôt que
$headers dans le for ou le foreach.
Pas de souci me semble-t-il désormais.
J'ai :
sub verify_cancel($$$) {
my $r_hdr = shift || die;
my $target = shift;
my $descr = shift;
my $headers = INN::head($target);
if (!$headers){
# saveart('log.cancel',"$descr of non-existing ID $target");
# return undef;
return "$descr of non-existing ID";
}
my %headers;
# for my $line(split(/\s*\n/, $headers)) {
my $previous;
foreach my $line (split(/\s*\n/, $headers)) {
if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
$previous = $1;
} elsif ($line =~ m/^\s+(.*)/) {
if (defined($previous)) {
$headers{$previous} .= " " . $1;
}
else {
INN::syslog('notice', 'garbled line: ' . $line);
}
}
}
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);
} else {
# saveart('log.cancel',"$descr of $target without Cancel-Key and
Cancel-Lock");
# -thh
# no cancel-lock: go ahead and cancel anyway!
# You refuse the cancel here...
# local stuff...
INN::syslog("info", "No Cancel-Key for $descr $target");
saveart('bad.cancel','No Cancel-Key');
return reject('No Cancel-Key');
#return "$descr of $target without Cancel-key";
# INN::cancel($target);
}
return undef;
}
-- Stéphane