mod_c2s, mod_s2s: Log cipher and encryption info in a more compact and (hopefully...
[prosody.git] / plugins / mod_lastactivity.lua
index 04f817cb0334d73beeb822b9993bedf3c3f7b5b7..fabf07b478714df6c09a2132ec649ae2625611e3 100644 (file)
@@ -1,7 +1,7 @@
 -- Prosody IM
--- Copyright (C) 2008-2009 Matthew Wild
--- Copyright (C) 2008-2009 Waqas Hussain
--- 
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
+--
 -- This project is MIT/X11 licensed. Please see the
 -- COPYING file in the source package for more information.
 --
@@ -23,13 +23,13 @@ module:hook("pre-presence/bare", function(event)
                s = s and #s.tags == 0 and s[1] or "";
                map[event.origin.username] = {s = s, t = t};
        end
-end);
+end, 10);
 
 module:hook("iq/bare/jabber:iq:last:query", function(event)
        local origin, stanza = event.origin, event.stanza;
        if stanza.attr.type == "get" then
                local username = jid_split(stanza.attr.to) or origin.username;
-               if is_contact_subscribed(username, module.host, jid_bare(stanza.attr.from)) then
+               if not stanza.attr.to or is_contact_subscribed(username, module.host, jid_bare(stanza.attr.from)) then
                        local seconds, text = "0", "";
                        if map[username] then
                                seconds = tostring(os.difftime(os.time(), map[username].t));
@@ -42,3 +42,11 @@ module:hook("iq/bare/jabber:iq:last:query", function(event)
                return true;
        end
 end);
+
+module.save = function()
+       return {map = map};
+end
+module.restore = function(data)
+       map = data.map or {};
+end
+