Software / code / prosody
Comparison
plugins/mod_http.lua @ 12923:419e55abd285 0.12
mod_http: Unhook CORS handlers only if active (fixes #1801)
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 05 Mar 2023 15:45:01 +0100 |
| parent | 12790:24b55f0e2db9 |
| child | 12977:74b9e05af71e |
| child | 13139:5d5869f14c4d |
comparison
equal
deleted
inserted
replaced
| 12898:4255db0f8e58 | 12923:419e55abd285 |
|---|---|
| 259 local function http_app_removed(event) | 259 local function http_app_removed(event) |
| 260 local app_handlers = apps[event.item.name]; | 260 local app_handlers = apps[event.item.name]; |
| 261 apps[event.item.name] = nil; | 261 apps[event.item.name] = nil; |
| 262 for event_name, handlers in pairs(app_handlers) do | 262 for event_name, handlers in pairs(app_handlers) do |
| 263 module:unhook_object_event(server, event_name, handlers.main); | 263 module:unhook_object_event(server, event_name, handlers.main); |
| 264 module:unhook_object_event(server, event_name, handlers.cors); | 264 if handlers.cors then |
| 265 module:unhook_object_event(server, event_name, handlers.cors); | |
| 266 end | |
| 265 | 267 |
| 266 if event_name:sub(-2, -1) == "/*" then | 268 if event_name:sub(-2, -1) == "/*" then |
| 267 module:unhook_object_event(server, event_name:sub(1, -3), redir_handler, -1); | 269 module:unhook_object_event(server, event_name:sub(1, -3), redir_handler, -1); |
| 268 elseif event_name:sub(-1, -1) == "/" then | 270 elseif event_name:sub(-1, -1) == "/" then |
| 269 module:unhook_object_event(server, event_name:sub(1, -2), redir_handler, -1); | 271 module:unhook_object_event(server, event_name:sub(1, -2), redir_handler, -1); |
| 270 end | 272 end |
| 271 | 273 |
| 272 local options_event_name = event_name:gsub("^%S+", "OPTIONS"); | 274 if handlers.options then |
| 273 module:unhook_object_event(server, options_event_name, handlers.options); | 275 local options_event_name = event_name:gsub("^%S+", "OPTIONS"); |
| 276 module:unhook_object_event(server, options_event_name, handlers.options); | |
| 277 end | |
| 274 end | 278 end |
| 275 end | 279 end |
| 276 | 280 |
| 277 module:handle_items("http-provider", http_app_added, http_app_removed); | 281 module:handle_items("http-provider", http_app_added, http_app_removed); |
| 278 | 282 |