header_ok: Don't assume that it is only used for host updates

This commit is contained in:
Richard Hansen 2024-07-23 15:31:33 -04:00
parent d48b482269
commit 08626482c3

View file

@ -3604,22 +3604,23 @@ sub nic_updateable {
## header_ok ## header_ok
###################################################################### ######################################################################
sub header_ok { sub header_ok {
my ($host, $line) = @_; my ($pfx, $line, $errlog) = @_;
$errlog //= \&failed;
if (!$line) { if (!$line) {
failed("updating %s: no response from server", $host); $errlog->("$pfx: no response from server");
return 0; return 0;
} }
$line =~ s/\r?\n.*//s; $line =~ s/\r?\n.*//s;
my ($code, $msg) = ($line =~ qr%^\s*HTTP/.*\s+(\d+)\s*(?:\s+([^\s].*))?$%i); my ($code, $msg) = ($line =~ qr%^\s*HTTP/.*\s+(\d+)\s*(?:\s+([^\s].*))?$%i);
if (!defined($code)) { if (!defined($code)) {
failed('updating %s: unexpected HTTP response: %s', $host, $line); $errlog->("$pfx: unexpected HTTP response: $line");
return 0; return 0;
} elsif ($code !~ qr/^2\d\d$/) { } elsif ($code !~ qr/^2\d\d$/) {
my %msgs = ( my %msgs = (
'401' => 'authentication failed', '401' => 'authentication failed',
'403' => 'not authorized', '403' => 'not authorized',
); );
failed('updating %s: %s %s', $host, $code, $msg // $msgs{$code} // ''); $errlog->("$pfx: $code " . ($msg // $msgs{$code} // ''));
return 0; return 0;
} }
return 1; return 1;