Mercurial > prosody-hg
view plugins/mod_server_contact_info.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 | c14659710747 |
| children |
line wrap: on
line source
-- XEP-0157: Contact Addresses for XMPP Services for Prosody -- -- Copyright (C) 2011-2018 Kim Alvefur -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local array = require "prosody.util.array"; local it = require "prosody.util.iterators"; local jid = require "prosody.util.jid"; local url = require "socket.url"; module:depends("server_info"); -- Source: http://xmpp.org/registrar/formtypes.html#http:--jabber.org-network-serverinfo local address_types = { abuse = "abuse-addresses"; admin = "admin-addresses"; feedback = "feedback-addresses"; sales = "sales-addresses"; security = "security-addresses"; status = "status-addresses"; support = "support-addresses"; }; -- JIDs of configured service admins are used as fallback local admins = module:get_option_inherited_set("admins", {}); local contact_config = module:get_option("contact_info", { admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end); }); local fields = {}; for key, field_var in it.sorted_pairs(address_types) do if contact_config[key] then table.insert(fields, { type = "list-multi"; name = key; var = field_var; value = contact_config[key]; }); end end module:add_item("server-info-fields", fields);
