projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util.hashes: Silence compiler warning about pointer signedness
[prosody.git]
/
plugins
/
mod_disco.lua
diff --git
a/plugins/mod_disco.lua
b/plugins/mod_disco.lua
index 907ca7531c6561af5e4128035a77a9f42edfd041..72c9a34c85ca87ec954e2e1c0dec6ebf45f4ad1c 100644
(file)
--- a/
plugins/mod_disco.lua
+++ b/
plugins/mod_disco.lua
@@
-32,7
+32,7
@@
do -- validate disco_items
end
end
end
end
-module:add_identity("server", "im",
"Prosody"
); -- FIXME should be in the non-existing mod_router
+module:add_identity("server", "im",
module:get_option_string("name", "Prosody")
); -- FIXME should be in the non-existing mod_router
module:add_feature("http://jabber.org/protocol/disco#info");
module:add_feature("http://jabber.org/protocol/disco#items");
module:add_feature("http://jabber.org/protocol/disco#info");
module:add_feature("http://jabber.org/protocol/disco#items");
@@
-54,6
+54,12
@@
local function build_server_disco_info()
done[feature] = true;
end
end
done[feature] = true;
end
end
+ for _,extension in ipairs(module:get_host_items("extension")) do
+ if not done[extension] then
+ query:add_child(extension);
+ done[extension] = true;
+ end
+ end
_cached_server_disco_info = query;
_cached_server_caps_hash = calculate_hash(query);
_cached_server_caps_feature = st.stanza("c", {
_cached_server_disco_info = query;
_cached_server_caps_hash = calculate_hash(query);
_cached_server_caps_feature = st.stanza("c", {
@@
-81,8
+87,10
@@
end
module:hook("item-added/identity", clear_disco_cache);
module:hook("item-added/feature", clear_disco_cache);
module:hook("item-added/identity", clear_disco_cache);
module:hook("item-added/feature", clear_disco_cache);
+module:hook("item-added/extension", clear_disco_cache);
module:hook("item-removed/identity", clear_disco_cache);
module:hook("item-removed/feature", clear_disco_cache);
module:hook("item-removed/identity", clear_disco_cache);
module:hook("item-removed/feature", clear_disco_cache);
+module:hook("item-removed/extension", clear_disco_cache);
-- Handle disco requests to the server
module:hook("iq/host/http://jabber.org/protocol/disco#info:query", function(event)
-- Handle disco requests to the server
module:hook("iq/host/http://jabber.org/protocol/disco#info:query", function(event)
@@
-103,8
+111,8
@@
module:hook("iq/host/http://jabber.org/protocol/disco#items:query", function(eve
if node and node ~= "" then return; end -- TODO fire event?
local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items");
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();
end
for _, item in ipairs(disco_items) do
reply:tag("item", {jid=item[1], name=item[2]}):up();