Mercurial > prosody-hg
comparison plugins/mod_disco.lua @ 4337:a2ee8ab82dd9
core.modulemanager, mod_disco: Add support for XEP-0128: Service Discovery Extensions
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 08 Aug 2011 18:23:53 +0200 |
| parents | d2c4856c7ed5 |
| children | 0f72123ff513 |
comparison
equal
deleted
inserted
replaced
| 4336:abcbcb15205c | 4337:a2ee8ab82dd9 |
|---|---|
| 52 if not done[feature] then | 52 if not done[feature] then |
| 53 query:tag("feature", {var=feature}):up(); | 53 query:tag("feature", {var=feature}):up(); |
| 54 done[feature] = true; | 54 done[feature] = true; |
| 55 end | 55 end |
| 56 end | 56 end |
| 57 for _,extension in ipairs(module:get_host_items("extension")) do | |
| 58 if not done[extension] then | |
| 59 query:add_child(extension); | |
| 60 done[extension] = true; | |
| 61 end | |
| 62 end | |
| 57 _cached_server_disco_info = query; | 63 _cached_server_disco_info = query; |
| 58 _cached_server_caps_hash = calculate_hash(query); | 64 _cached_server_caps_hash = calculate_hash(query); |
| 59 _cached_server_caps_feature = st.stanza("c", { | 65 _cached_server_caps_feature = st.stanza("c", { |
| 60 xmlns = "http://jabber.org/protocol/caps"; | 66 xmlns = "http://jabber.org/protocol/caps"; |
| 61 hash = "sha-1"; | 67 hash = "sha-1"; |
| 79 return _cached_server_caps_hash; | 85 return _cached_server_caps_hash; |
| 80 end | 86 end |
| 81 | 87 |
| 82 module:hook("item-added/identity", clear_disco_cache); | 88 module:hook("item-added/identity", clear_disco_cache); |
| 83 module:hook("item-added/feature", clear_disco_cache); | 89 module:hook("item-added/feature", clear_disco_cache); |
| 90 module:hook("item-added/extension", clear_disco_cache); | |
| 84 module:hook("item-removed/identity", clear_disco_cache); | 91 module:hook("item-removed/identity", clear_disco_cache); |
| 85 module:hook("item-removed/feature", clear_disco_cache); | 92 module:hook("item-removed/feature", clear_disco_cache); |
| 93 module:hook("item-removed/extension", clear_disco_cache); | |
| 86 | 94 |
| 87 -- Handle disco requests to the server | 95 -- Handle disco requests to the server |
| 88 module:hook("iq/host/http://jabber.org/protocol/disco#info:query", function(event) | 96 module:hook("iq/host/http://jabber.org/protocol/disco#info:query", function(event) |
| 89 local origin, stanza = event.origin, event.stanza; | 97 local origin, stanza = event.origin, event.stanza; |
| 90 if stanza.attr.type ~= "get" then return; end | 98 if stanza.attr.type ~= "get" then return; end |
