hostmanager, mod_disco: Show optional 'name' option from the config in disco#items queries (fixes use-case in #292) (thanks diSabler, mva)
--- a/core/hostmanager.lua Fri Aug 03 14:07:41 2012 +0100
+++ b/core/hostmanager.lua Sun Aug 05 17:18:35 2012 +0100
@@ -84,7 +84,7 @@
end
hosts[host] = host_session;
if not host:match("[@/]") then
- disco_items:set(host:match("%.(.*)") or "*", host, true);
+ disco_items:set(host:match("%.(.*)") or "*", host, host_config.core.name or true);
end
for option_name in pairs(host_config.core) do
if option_name:match("_ports$") or option_name:match("_interface$") then
--- a/plugins/mod_disco.lua Fri Aug 03 14:07:41 2012 +0100
+++ b/plugins/mod_disco.lua Sun Aug 05 17:18:35 2012 +0100
@@ -111,8 +111,8 @@
if node and node ~= "" then return; end -- TODO fire event?
local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items");
- for jid in pairs(get_children(module.host)) do
- reply:tag("item", {jid = jid}):up();
+ for jid, name in pairs(get_children(module.host)) do
+ reply:tag("item", {jid = jid, name = name~=true and name or nil}):up();
end
for _, item in ipairs(disco_items) do
reply:tag("item", {jid=item[1], name=item[2]}):up();