aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_vcard_legacy.lua14
-rwxr-xr-xprosodyctl26
2 files changed, 25 insertions, 15 deletions
diff --git a/plugins/mod_vcard_legacy.lua b/plugins/mod_vcard_legacy.lua
index 91497493..6bae3ee5 100644
--- a/plugins/mod_vcard_legacy.lua
+++ b/plugins/mod_vcard_legacy.lua
@@ -321,13 +321,19 @@ local function inject_xep153(event)
if stanza.attr.type then return end
local pep_service = mod_pep.get_pep_service(username);
- stanza:remove_children("x", "vcard-temp:x:update");
- local x_update = st.stanza("x", { xmlns = "vcard-temp:x:update" });
+ local x_update = stanza:get_child("x", "vcard-temp:x:update");
+ if not x_update then
+ x_update = st.stanza("x", { xmlns = "vcard-temp:x:update" }):tag("photo");
+ stanza:add_direct_child(x_update);
+ elseif x_update:get_child("photo") then
+ return; -- XEP implies that these should be left alone
+ else
+ x_update:tag("photo");
+ end
local ok, avatar_hash = pep_service:get_last_item("urn:xmpp:avatar:metadata", true);
if ok and avatar_hash then
- x_update:text_tag("photo", avatar_hash);
+ x_update:text(avatar_hash);
end
- stanza:add_direct_child(x_update);
end
module:hook("pre-presence/full", inject_xep153, 1);
diff --git a/prosodyctl b/prosodyctl
index 7261b326..82b5faaa 100755
--- a/prosodyctl
+++ b/prosodyctl
@@ -1142,17 +1142,21 @@ function commands.check(arg)
if modules:contains("proxy65") then
local proxy65_target = configmanager.get(host, "proxy65_address") or host;
- local A, AAAA = dns.lookup(idna.to_ascii(proxy65_target), "A"), dns.lookup(idna.to_ascii(proxy65_target), "AAAA");
- local prob = {};
- if not A then
- table.insert(prob, "A");
- end
- if v6_supported and not AAAA then
- table.insert(prob, "AAAA");
- end
- if #prob > 0 then
- print(" File transfer proxy "..proxy65_target.." has no "..table.concat(prob, "/")
- .." record. Create one or set 'proxy65_address' to the correct host/IP.");
+ if type(proxy65_target) == "string" then
+ local A, AAAA = dns.lookup(idna.to_ascii(proxy65_target), "A"), dns.lookup(idna.to_ascii(proxy65_target), "AAAA");
+ local prob = {};
+ if not A then
+ table.insert(prob, "A");
+ end
+ if v6_supported and not AAAA then
+ table.insert(prob, "AAAA");
+ end
+ if #prob > 0 then
+ print(" File transfer proxy "..proxy65_target.." has no "..table.concat(prob, "/")
+ .." record. Create one or set 'proxy65_address' to the correct host/IP.");
+ end
+ else
+ print(" proxy65_address for "..host.." should be set to a string, unable to perform DNS check");
end
end