comparison plugins/mod_http_errors.lua @ 13964:36d361722889

mod_http_errors: Fix traceback on missing Accept header Also guards against the request being missing from the event entirely, as is the case with errors from net.http.server runner_callbacks:error()
author Kim Alvefur <zash@zash.se>
date Sun, 28 Sep 2025 00:55:41 +0200
parents 1b95d50cfa18
children
comparison
equal deleted inserted replaced
13963:44f859531df7 13964:36d361722889
81 return get_page(event.code, (show_private and event.private_message) or event.message or (event.error and event.error.text)); 81 return get_page(event.code, (show_private and event.private_message) or event.message or (event.error and event.error.text));
82 end); 82 end);
83 83
84 -- Return error object as JSON if that's what requester prefers 84 -- Return error object as JSON if that's what requester prefers
85 module:hook_object_event(server, "http-error", function (event) 85 module:hook_object_event(server, "http-error", function (event)
86 if event.request.headers.accept:match("^application/json") then 86 if event.request and (event.request.headers.accept or ""):match("^application/json") then
87 event.response.headers.content_type = "application/json"; 87 event.response.headers.content_type = "application/json";
88 local error = event.request and event.error; 88 local error = event.request and event.error;
89 if not error then 89 if not error then
90 error = http_errors[event.response.status_code]; 90 error = http_errors[event.response.status_code];
91 end 91 end