* [pve-devel] [PATCH http-server v2 1/2] add error message into http body @ 2025-01-28 14:41 Dominik Csapak 2025-01-28 14:41 ` [pve-devel] [PATCH http-server v2 2/2] use HTTP_INTERNAL_SERVER_ERROR were appropriate instead of '501' Dominik Csapak 2025-01-28 14:52 ` [pve-devel] applied-series: [PATCH http-server v2 1/2] add error message into http body Thomas Lamprecht 0 siblings, 2 replies; 3+ messages in thread From: Dominik Csapak @ 2025-01-28 14:41 UTC (permalink / raw) To: pve-devel In our rust client, we can't access the http reason phrases[0], so let's put them into the body itself if we don't specify an explicit content. our proxmox-client code in rust already uses the body as message if there is one [1], so we get that automatically. 0: https://github.com/hyperium/http/issues/737 1: https://git.proxmox.com/?p=proxmox.git;a=blob;f=proxmox-client/src/client.rs;h=9b078a9820405b22ca54c17ea4da4c586e0649b4;hb=refs/heads/master#l237 Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- changes from rfc: * add a comment why we don't set the content type src/PVE/APIServer/AnyEvent.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/PVE/APIServer/AnyEvent.pm b/src/PVE/APIServer/AnyEvent.pm index b94e1aa..9a1e35a 100644 --- a/src/PVE/APIServer/AnyEvent.pm +++ b/src/PVE/APIServer/AnyEvent.pm @@ -389,6 +389,9 @@ sub error { my ($self, $reqstate, $code, $msg, $hdr, $content) = @_; eval { + $content //= $msg; # write error into body by default + # lack of content type here means either 'application/octet-stream' or the client + # can guess. This is fine since we don't know what content/msg actually contains. my $resp = HTTP::Response->new($code, $msg, $hdr, $content); $self->response($reqstate, $resp); }; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] [PATCH http-server v2 2/2] use HTTP_INTERNAL_SERVER_ERROR were appropriate instead of '501' 2025-01-28 14:41 [pve-devel] [PATCH http-server v2 1/2] add error message into http body Dominik Csapak @ 2025-01-28 14:41 ` Dominik Csapak 2025-01-28 14:52 ` [pve-devel] applied-series: [PATCH http-server v2 1/2] add error message into http body Thomas Lamprecht 1 sibling, 0 replies; 3+ messages in thread From: Dominik Csapak @ 2025-01-28 14:41 UTC (permalink / raw) To: pve-devel The http status code 501 is meant to be 'Not Implemented'[0] but that clearly does not fit here as the default error when we encounter a problem during handling an api request or upload. So instead use '500' (HTTP_INTERNAL_SERVER_ERROR) which we already use in other places where it fits. 0: https://datatracker.ietf.org/doc/html/rfc9110#name-501-not-implemented Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- changes from rfc: * only change the code where it actually make sense, the other instances were cases of us not implementing part of the request so 501 there was ok in the first place src/PVE/APIServer/AnyEvent.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PVE/APIServer/AnyEvent.pm b/src/PVE/APIServer/AnyEvent.pm index 9a1e35a..469dd28 100644 --- a/src/PVE/APIServer/AnyEvent.pm +++ b/src/PVE/APIServer/AnyEvent.pm @@ -507,7 +507,7 @@ sub send_file_start { $self->response($reqstate, $resp, $mtime, $nocomp); }; if (my $err = $@) { - $self->error($reqstate, 501, $err); + $self->error($reqstate, HTTP_INTERNAL_SERVER_ERROR, $err); } }; @@ -1023,7 +1023,7 @@ sub handle_api2_request { $self->response($reqstate, $resp, undef, $nocomp, $delay); }; if (my $err = $@) { - $self->error($reqstate, 501, $err); + $self->error($reqstate, HTTP_INTERNAL_SERVER_ERROR, $err); } } @@ -1217,7 +1217,7 @@ sub handle_request { die "no such file '$path'\n"; }; if (my $err = $@) { - $self->error($reqstate, 501, $err); + $self->error($reqstate, HTTP_INTERNAL_SERVER_ERROR, $err); } } @@ -1307,7 +1307,7 @@ sub file_upload_multipart { }; if (my $err = $@) { syslog('err', $err); - $self->error($reqstate, 501, $err); + $self->error($reqstate, HTTP_INTERNAL_SERVER_ERROR, $err); } } -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] applied-series: [PATCH http-server v2 1/2] add error message into http body 2025-01-28 14:41 [pve-devel] [PATCH http-server v2 1/2] add error message into http body Dominik Csapak 2025-01-28 14:41 ` [pve-devel] [PATCH http-server v2 2/2] use HTTP_INTERNAL_SERVER_ERROR were appropriate instead of '501' Dominik Csapak @ 2025-01-28 14:52 ` Thomas Lamprecht 1 sibling, 0 replies; 3+ messages in thread From: Thomas Lamprecht @ 2025-01-28 14:52 UTC (permalink / raw) To: Proxmox VE development discussion, Dominik Csapak Am 28.01.25 um 15:41 schrieb Dominik Csapak: > In our rust client, we can't access the http reason phrases[0], so let's > put them into the body itself if we don't specify an explicit content. > > our proxmox-client code in rust already uses the body as message if > there is one [1], so we get that automatically. > > 0: https://github.com/hyperium/http/issues/737 > 1: https://git.proxmox.com/?p=proxmox.git;a=blob;f=proxmox-client/src/client.rs;h=9b078a9820405b22ca54c17ea4da4c586e0649b4;hb=refs/heads/master#l237 > > Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> > --- > changes from rfc: > * add a comment why we don't set the content type > > src/PVE/APIServer/AnyEvent.pm | 3 +++ > 1 file changed, 3 insertions(+) > > applied both patches, thanks! _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-28 14:52 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-01-28 14:41 [pve-devel] [PATCH http-server v2 1/2] add error message into http body Dominik Csapak 2025-01-28 14:41 ` [pve-devel] [PATCH http-server v2 2/2] use HTTP_INTERNAL_SERVER_ERROR were appropriate instead of '501' Dominik Csapak 2025-01-28 14:52 ` [pve-devel] applied-series: [PATCH http-server v2 1/2] add error message into http body Thomas Lamprecht
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inboxService provided by Proxmox Server Solutions GmbH | Privacy | Legal