Mercurial > prosody-modules
comparison mod_http_altconnect/mod_http_altconnect.lua @ 3712:0a0bf87ccda6
mod_http_altconnect: Handle connection modules being global or host-local
mod_bosh may be either a global or a normal module depending on Prosody version.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 12 Oct 2019 16:22:54 +0200 |
parents | b21236b6b8d8 |
children |
comparison
equal
deleted
inserted
replaced
3711:309fa523c424 | 3712:0a0bf87ccda6 |
---|---|
1 -- mod_http_altconnect | 1 -- mod_http_altconnect |
2 -- XEP-0156: Discovering Alternative XMPP Connection Methods | 2 -- XEP-0156: Discovering Alternative XMPP Connection Methods |
3 | 3 |
4 module:depends"http"; | 4 module:depends"http"; |
5 | 5 |
6 local mm = require "core.modulemanager"; | |
6 local json = require"util.json"; | 7 local json = require"util.json"; |
7 local st = require"util.stanza"; | 8 local st = require"util.stanza"; |
8 local array = require"util.array"; | 9 local array = require"util.array"; |
9 | 10 |
10 local host_modules = hosts[module.host].modules; | |
11 | |
12 local function get_supported() | 11 local function get_supported() |
13 local uris = array(); | 12 local uris = array(); |
14 if host_modules["bosh"] then | 13 if mm.is_loaded(module.host, "bosh") or mm.is_loaded("*", "bosh") then |
15 uris:push({ rel = "urn:xmpp:alt-connections:xbosh", href = module:http_url("bosh", "/http-bind") }); | 14 uris:push({ rel = "urn:xmpp:alt-connections:xbosh", href = module:http_url("bosh", "/http-bind") }); |
16 end | 15 end |
17 if host_modules["websocket"] then | 16 if mm.is_loaded(module.host, "websocket") or mm.is_loaded("*", "websocket") then |
18 uris:push({ rel = "urn:xmpp:alt-connections:websocket", href = module:http_url("websocket", "xmpp-websocket"):gsub("^http", "ws") }); | 17 uris:push({ rel = "urn:xmpp:alt-connections:websocket", href = module:http_url("websocket", "xmpp-websocket"):gsub("^http", "ws") }); |
19 end | 18 end |
20 return uris; | 19 return uris; |
21 end | 20 end |
22 | 21 |