Software /
code /
prosody-modules
File
mod_http_health/mod_http_health.lua @ 5926:8ff308fad9fd
mod_mam_archive: remove invalid disco#info feature
The feature which was previously added to disco#info was in fact
specified to be used for stream features only (see XEP-0136
section 11).
Emitting it in disco#info is weird at best and breaks stuff at
worst.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Thu, 09 May 2024 10:13:26 +0200 |
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; }; });