Mercurial > prosody-hg
view plugins/mod_http_altconnect.lua @ 14024:f65302ea37b0 13.0 13.0.3
mod_limits: Allow configuration of general 's2s' limit, and have s2sout inherit from s2sin
Most people don't currently have a limit set for s2sout, as usually such
sessions don't have significant incoming traffic. However, having limits in
place is still sensible, especially with the rising use of bidi.
The goal here is to switch people to a general 's2s' limit, which s2sin and
s2sout both inherit from. Due to the widespread existence of 's2sin' in
existing configurations, s2sout will inherit from that unless explicitly set.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 05 Jan 2026 11:35:32 +0000 |
| parents | 569fae28a2f3 |
| children |
line wrap: on
line source
-- mod_http_altconnect -- XEP-0156: Discovering Alternative XMPP Connection Methods module:depends"http"; local mm = require "prosody.core.modulemanager"; local json = require"prosody.util.json"; local st = require"prosody.util.stanza"; local array = require"prosody.util.array"; local advertise_bosh = module:get_option_boolean("advertise_bosh", true); local advertise_websocket = module:get_option_boolean("advertise_websocket", true); local function get_supported() local uris = array(); if advertise_bosh and (mm.is_loaded(module.host, "bosh") or mm.is_loaded("*", "bosh")) then uris:push({ rel = "urn:xmpp:alt-connections:xbosh", href = module:http_url("bosh", "/http-bind") }); end if advertise_websocket and (mm.is_loaded(module.host, "websocket") or mm.is_loaded("*", "websocket")) then uris:push({ rel = "urn:xmpp:alt-connections:websocket", href = module:http_url("websocket", "xmpp-websocket"):gsub("^http", "ws") }); end return uris; end local function GET_xml(event) local response = event.response; local xrd = st.stanza("XRD", { xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0' }); local uris = get_supported(); for _, method in ipairs(uris) do xrd:tag("Link", method):up(); end response.headers.content_type = "application/xrd+xml" response.headers.access_control_allow_origin = "*"; return '<?xml version="1.0" encoding="UTF-8"?>' .. tostring(xrd); end local function GET_json(event) local response = event.response; local jrd = { links = get_supported() }; response.headers.content_type = "application/json" response.headers.access_control_allow_origin = "*"; return json.encode(jrd); end; module:provides("http", { default_path = "/.well-known"; route = { ["GET /host-meta"] = GET_xml; ["GET /host-meta.json"] = GET_json; }; });
