Software /
code /
prosody-modules
File
mod_http_health/mod_http_health.lua @ 5719:66986f5271c3
mod_storage_s3: Skip archive items matching on date but not full datetime
Since it only encodes dates in paths, it would have returned items from
outside the specified start..end range if they were from earlier or
later in the same (UTC) day.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 11 Nov 2023 22:26:39 +0100 |
parent | 5712:09233b625cb9 |
line wrap: on
line source
module:set_global(); local ip = require "util.ip"; local modulemanager = require "core.modulemanager"; local permitted_ips = module:get_option_set("http_health_allow_ips", { "::1", "127.0.0.1" }); local permitted_cidr = module:get_option_string("http_health_allow_cidr"); local function is_permitted(request) local ip_raw = request.ip; if permitted_ips:contains(ip_raw) or (permitted_cidr and ip.match(ip.new_ip(ip_raw), ip.parse_cidr(permitted_cidr))) then return true; end return false; end module:provides("http", { route = { GET = function(event) local request = event.request; if not is_permitted(request) then return 403; -- Forbidden end for host in pairs(prosody.hosts) do local mods = modulemanager.get_modules(host); for _, mod in pairs(mods) do if mod.module.status_type == "error" then return { status_code = 500; headers = { content_type = "text/plain" }; body = "HAS ERRORS\n" }; end end end return { status_code = 200; headers = { content_type = "text/plain" }; body = "OK\n" }; end; }; });