diff options
author | Kim Alvefur <zash@zash.se> | 2023-03-05 15:45:01 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-03-05 15:45:01 +0100 |
commit | 0890b20fbff4bff4c557d79ec53f36016085da82 (patch) | |
tree | 266de87749396dae3896e90614a4f90fa87ca9f0 /plugins | |
parent | 9c49ca70fd5e0916c694b3153631682f3fd192da (diff) | |
download | prosody-0890b20fbff4bff4c557d79ec53f36016085da82.tar.gz prosody-0890b20fbff4bff4c557d79ec53f36016085da82.zip |
mod_http: Unhook CORS handlers only if active (fixes #1801)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_http.lua | 10 |
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 |