Fix to simplify Miniserv config lock handling

ⓘ Remove the obsolete eval around `flock` in the `miniserv` config lock helper and report lock, write, and close failures explicitly.
This commit is contained in:
Ilia Ross
2026-06-22 20:41:02 +02:00
parent 26311baab9
commit a0b67db65b

View File

@@ -5122,15 +5122,23 @@ while(1) {
# the non-blocking flock just narrows races between lock claimers.
unlink($lockfile);
if (open(my $locking, ">", $lockfile)) {
my $locked = eval { flock($locking, 2+4) };
my $ok;
if ($locked) {
$ok = print $locking $$,"\n";
if (!flock($locking, 2+4)) {
$last_lock_err = "Flock failed : ".$!;
close($locking);
unlink($lockfile);
}
elsif (!print $locking $$,"\n") {
$last_lock_err = "Lock write failed : ".$!;
close($locking);
unlink($lockfile);
}
elsif (!close($locking)) {
$last_lock_err = "Lock close failed : ".$!;
unlink($lockfile);
}
else {
return 1;
}
my $closed = close($locking);
return 1 if ($locked && $ok && $closed);
unlink($lockfile);
$last_lock_err = "Lock failed : ".($@ || $!);
}
else {
$last_lock_err = "Lock open failed : ".$!;