diff options
author | Badlop <badlop@process-one.net> | 2021-02-15 13:12:52 +0100 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2021-02-16 13:09:33 +0100 |
commit | 72ecf91f08a8aa4232f2214de37bd74ecde011fa (patch) | |
tree | 37dab0ca917e8c5565ca3a631957c58f9fcaf476 /src/mod_vcard.erl | |
parent | make hooks and options work with rebar3 too (diff) |
Return modules errors in set_vcard callback (#3502)
Diffstat (limited to '')
-rw-r--r-- | src/mod_vcard.erl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl index b5a927c6e..85734b358 100644 --- a/src/mod_vcard.erl +++ b/src/mod_vcard.erl @@ -403,7 +403,7 @@ vcard_iq_set(#iq{from = From, lang = Lang, sub_els = [VCard]} = IQ) -> vcard_iq_set(Acc) -> Acc. --spec set_vcard(binary(), binary(), xmlel() | vcard_temp()) -> {error, badarg} | ok. +-spec set_vcard(binary(), binary(), xmlel() | vcard_temp()) -> {error, badarg|binary()} | ok. set_vcard(User, LServer, VCARD) -> case jid:nodeprep(User) of error -> @@ -412,10 +412,14 @@ set_vcard(User, LServer, VCARD) -> VCardEl = xmpp:encode(VCARD), VCardSearch = make_vcard_search(User, LUser, LServer, VCardEl), Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:set_vcard(LUser, LServer, VCardEl, VCardSearch), - ets_cache:delete(?VCARD_CACHE, {LUser, LServer}, + case Mod:set_vcard(LUser, LServer, VCardEl, VCardSearch) of + {atomic, ok} -> + ets_cache:delete(?VCARD_CACHE, {LUser, LServer}, cache_nodes(Mod, LServer)), - ok + ok; + {atomic, Error} -> + {error, Error} + end end. -spec string2lower(binary()) -> binary(). |