aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2023-03-05 15:45:01 +0100
committerKim Alvefur <zash@zash.se>2023-03-05 15:45:01 +0100
commit0890b20fbff4bff4c557d79ec53f36016085da82 (patch)
tree266de87749396dae3896e90614a4f90fa87ca9f0
parent9c49ca70fd5e0916c694b3153631682f3fd192da (diff)
downloadprosody-0890b20fbff4bff4c557d79ec53f36016085da82.tar.gz
prosody-0890b20fbff4bff4c557d79ec53f36016085da82.zip
mod_http: Unhook CORS handlers only if active (fixes #1801)
-rw-r--r--plugins/mod_http.lua10
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/mod_http.lua b/plugins/mod_http.lua
index 66012239..01bb1f6f 100644
--- a/plugins/mod_http.lua
+++ b/plugins/mod_http.lua
@@ -261,7 +261,9 @@ function module.add_host(module)
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 @@ function module.add_host(module)
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