Software /
code /
prosody-modules
Changeset
2008:cf3bdcb633f0
mod_vjud: Handle vCard decoding errors by logging them (Thanks Roi)
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 14 Jan 2016 18:24:35 +0100 |
parents | 2007:dc1299ca0185 |
children | 2009:4a1c1ffb4c09 |
files | mod_vjud/mod_vjud.lua |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_vjud/mod_vjud.lua Wed Jan 13 23:04:55 2016 +0000 +++ b/mod_vjud/mod_vjud.lua Thu Jan 14 18:24:35 2016 +0100 @@ -59,12 +59,12 @@ }; local function get_user_vcard(user, host) - local vCard = dm_load(user, host or base_host, "vcard"); - if vCard then - vCard = st.deserialize(vCard); - vCard = vcard.from_xep54(vCard); - return setmetatable(vCard, vCard_mt); - end + local vCard err = dm_load(user, host or base_host, "vcard"); + if not vCard then return nil, err; end + vCard = st.deserialize(vCard); + vCard, err = vcard.from_xep54(vCard); + if not vCard then return nil, err; end + return setmetatable(vCard, vCard_mt); end local at_host = "@"..base_host; @@ -102,8 +102,10 @@ local username, hostname = jid_split(email); if hostname == base_host and username and usermanager.user_exists(username, hostname) then - local vCard = get_user_vcard(username); - if vCard then + local vCard, err = get_user_vcard(username); + if not vCard then + module:log("debug", "Couldn't get vCard for user %s: %s", username, err or "unknown error"); + else reply:add_child(item_template.apply{ jid = username..at_host; first = vCard.N and vCard.N[2] or nil;