From f4507a088ab4cd073944edccda421ba29dcced9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6hler?= Date: Fri, 5 Nov 2010 18:38:42 +0100 Subject: [PATCH] In mod_last*:get_last_iq/4, check for user resources first to return 0 seconds if there is one Fixes problem 2 of EJAB-1158. --- src/mod_last.erl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mod_last.erl b/src/mod_last.erl index 9e9a73272..e091e6269 100644 --- a/src/mod_last.erl +++ b/src/mod_last.erl @@ -180,6 +180,16 @@ get_last(LUser, LServer) -> end. get_last_iq(IQ_Rec, LUser, LServer) -> + case ejabberd_sm:get_user_resources(LUser, LServer) of + [] -> + get_last_iq_disconnected(IQ_Rec, LUser, LServer); + _ -> + Sec = 0, + #xmlel{ns = ?NS_LAST_ACTIVITY, name = 'query', + attrs = [?XMLATTR('seconds', Sec)]} + end. + +get_last_iq_disconnected(IQ_Rec, LUser, LServer) -> case get_last(LUser, LServer) of {error, _Reason} -> exmpp_iq:error(IQ_Rec, 'internal-server-error');