# HG changeset patch # User Kim Alvefur # Date 1678027501 -3600 # Node ID 419e55abd28590d2b3eeb0cfa8944205a1e01dcd # Parent 4255db0f8e58d1edc282255fe970243c9a4a50f8 mod_http: Unhook CORS handlers only if active (fixes #1801) diff -r 4255db0f8e58 -r 419e55abd285 plugins/mod_http.lua --- a/plugins/mod_http.lua Wed Feb 22 22:27:42 2023 +0100 +++ b/plugins/mod_http.lua Sun Mar 05 15:45:01 2023 +0100 @@ -261,7 +261,9 @@ apps[event.item.name] = nil; for event_name, handlers in pairs(app_handlers) do module:unhook_object_event(server, event_name, handlers.main); - module:unhook_object_event(server, event_name, handlers.cors); + if handlers.cors then + module:unhook_object_event(server, event_name, handlers.cors); + end if event_name:sub(-2, -1) == "/*" then module:unhook_object_event(server, event_name:sub(1, -3), redir_handler, -1); @@ -269,8 +271,10 @@ module:unhook_object_event(server, event_name:sub(1, -2), redir_handler, -1); end - local options_event_name = event_name:gsub("^%S+", "OPTIONS"); - module:unhook_object_event(server, options_event_name, handlers.options); + if handlers.options then + local options_event_name = event_name:gsub("^%S+", "OPTIONS"); + module:unhook_object_event(server, options_event_name, handlers.options); + end end end