From 14fa5be33c1641e3212c45c7810e460b667f59b6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 2 Nov 2012 21:36:26 -0400 Subject: fix marking git-annex clients away when they disconnect --- Assistant/XMPP/Buddies.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Assistant/XMPP') diff --git a/Assistant/XMPP/Buddies.hs b/Assistant/XMPP/Buddies.hs index db56235c7..217870dc6 100644 --- a/Assistant/XMPP/Buddies.hs +++ b/Assistant/XMPP/Buddies.hs @@ -63,16 +63,18 @@ applyPresence :: Presence -> Buddy -> Buddy applyPresence p b = fromMaybe b $! go <$> presenceFrom p where go jid + | presenceType p == PresenceUnavailable = b + { buddyAway = addto $ buddyAway b + , buddyPresent = removefrom $ buddyPresent b + , buddyAssistants = removefrom $ buddyAssistants b + } | isGitAnnexPresence p = b - { buddyAssistants = addto $ buddyAssistants b } + { buddyAssistants = addto $ buddyAssistants b + , buddyAway = removefrom $ buddyAway b } | presenceType p == PresenceAvailable = b { buddyPresent = addto $ buddyPresent b , buddyAway = removefrom $ buddyAway b } - | presenceType p == PresenceUnavailable = b - { buddyAway = addto $ buddyAway b - , buddyPresent = removefrom $ buddyPresent b - } | otherwise = b where client = Client jid -- cgit v1.2.3