Mercurial > prosody-hg
view plugins/mod_turn_external.lua @ 14103:27e97e5b2c16 13.0
util.jid: Fix to reject IPv6 literal hosts without brackets
From RFC 7622:
> Implementation Note: Reuse of the IP-literal rule from [RFC6874]
> implies that IPv6 addresses are enclosed within square brackets (i.e.,
> beginning with '[' and ending with ']'), , which was not the case with
> the definition of the XMPP address format in [RFC3920] but which was
> changed in [RFC6122].
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 14 Mar 2026 01:16:14 +0100 |
| parents | 7fd6feb86dbe |
| children |
line wrap: on
line source
local set = require "prosody.util.set"; local secret = module:get_option_string("turn_external_secret"); local host = module:get_option_string("turn_external_host", module.host); local user = module:get_option_string("turn_external_user"); local port = module:get_option_integer("turn_external_port", 3478, 1, 65535); local ttl = module:get_option_period("turn_external_ttl", "1 day"); local tcp = module:get_option_boolean("turn_external_tcp", false); local tls_port = module:get_option_integer("turn_external_tls_port", nil, 1, 65535); if not secret then module:log_status("error", "Failed to initialize: the 'turn_external_secret' option is not set in your configuration"); return; end local services = set.new({ "stun-udp"; "turn-udp" }); if tcp then services:add("stun-tcp"); services:add("turn-tcp"); end if tls_port then services:add("turns-tcp"); end module:depends "external_services"; for _, type in ipairs({ "stun"; "turn"; "turns" }) do for _, transport in ipairs({"udp"; "tcp"}) do if services:contains(type .. "-" .. transport) then module:add_item("external_service", { type = type; transport = transport; host = host; port = type == "turns" and tls_port or port; username = (type == "turn" or type == "turns") and user or nil; secret = (type == "turn" or type == "turns") and secret or nil; ttl = (type == "turn" or type == "turns") and ttl or nil; }) end end end
