mod_storage_sql: Return connection from connect even if already connected (thanks...
[prosody.git] / plugins / mod_disco.lua
index 907ca7531c6561af5e4128035a77a9f42edfd041..6587d435dcca71024067d602721dc4d446a8ef7d 100644 (file)
@@ -32,7 +32,7 @@ do -- validate disco_items
        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");
 
@@ -54,6 +54,12 @@ local function build_server_disco_info()
                        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", {
@@ -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/extension", 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)