]> git.proxmox.com Git - pve-http-server.git/blobdiff - PVE/APIServer/AnyEvent.pm
auth_handler: respond with passed error if we get a PVE::Exception
[pve-http-server.git] / PVE / APIServer / AnyEvent.pm
index d7271a23e6c991623dbf236d1c8c456a2be9c0d5..382eab4b7c64d0119c1ed5ea43368782a8dbded1 100755 (executable)
@@ -1217,7 +1217,14 @@ sub unshift_read_header {
                        Net::SSLeay::ERR_clear_error();
                        # always delay unauthorized calls by 3 seconds
                        my $delay = 3;
-                       if (my $formatter = PVE::APIServer::Formatter::get_login_formatter($format)) {
+
+                       if (ref($err) eq "PVE::Exception") {
+
+                           $err->{code} ||= HTTP_INTERNAL_SERVER_ERROR,
+                           my $resp = HTTP::Response->new($err->{code}, $err->{msg});
+                           $self->response($reqstate, $resp, undef, 0, $delay);
+
+                       } elsif (my $formatter = PVE::APIServer::Formatter::get_login_formatter($format)) {
                            my ($raw, $ct, $nocomp) =
                                $formatter->($path, $auth, $self->{formatter_config});
                            my $resp;