mod_httpserver: Rename to mod_http_files
[prosody.git] / plugins / mod_pep.lua
index f215b8be77053964d274c41078980e5b3e8f8394..bbdd5f19eac407542b8e5f360475e9b5e7978e03 100644 (file)
@@ -124,7 +124,7 @@ module:hook("presence/bare", function(event)
                        local recipient = stanza.attr.from;
                        local current = recipients[user] and recipients[user][recipient];
                        local hash = get_caps_hash_from_presence(stanza, current);
-                       if current == hash then return; end
+                       if current == hash or (current and current == hash_map[hash]) then return; end
                        if not hash then
                                if recipients[user] then recipients[user][recipient] = nil; end
                        else
@@ -134,10 +134,11 @@ module:hook("presence/bare", function(event)
                                        publish_all(user, recipient, origin);
                                else
                                        recipients[user][recipient] = hash;
-                                       local from_bare = origin.username.."@"..origin.host;
+                                       local from_bare = origin.type == "c2s" and origin.username.."@"..origin.host;
                                        if self or origin.type ~= "c2s" or (recipients[from_bare] and recipients[from_bare][origin.full_jid]) ~= hash then
+                                               -- COMPAT from ~= stanza.attr.to because OneTeam can't deal with missing from attribute
                                                origin.send(
-                                                       st.stanza("iq", {from=stanza.attr.to, to=stanza.attr.from, id="disco", type="get"})
+                                                       st.stanza("iq", {from=user, to=stanza.attr.from, id="disco", type="get"})
                                                                :query("http://jabber.org/protocol/disco#info")
                                                );
                                        end