diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2009-11-19 13:11:38 +0000 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2009-11-19 13:11:38 +0000 |
commit | 76c85b4c79d533ca7a780df381ccda5b9ab2934c (patch) | |
tree | a083be5e58f87ee34f3ee74466d9c974f6e0ac9f /protocols/jabber/jabber.h | |
parent | 36cf9fda6a5cc4bcbfe98319b48af636fa142590 (diff) |
resource_select now defaults to activity instead of priority. Also, adding
a activity_timeout setting. Now, messages to someone who hasn't spoken for
a while will be sent to his/her bare JID, usually resulting in a broadcast.
This should fix issues with messages sometimes arriving on someone's
Crackberry/Android/etc instead of some place s/he's paying attention to.
Last, the activity timer is only reset on incoming messages.
Diffstat (limited to 'protocols/jabber/jabber.h')
-rw-r--r-- | protocols/jabber/jabber.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/protocols/jabber/jabber.h b/protocols/jabber/jabber.h index 1180d2b9..5eac70d0 100644 --- a/protocols/jabber/jabber.h +++ b/protocols/jabber/jabber.h @@ -106,6 +106,13 @@ struct jabber_cache_entry jabber_cache_event func; }; +/* Somewhat messy data structure: We have a hash table with the bare JID as + the key and the head of a struct jabber_buddy list as the value. The head + is always a bare JID. If the JID has other resources (often the case, + except for some transports that don't support multiple resources), those + follow. In that case, the bare JID at the beginning doesn't actually + refer to a real session and should only be used for operations that + support incomplete JIDs. */ struct jabber_buddy { char *bare_jid; @@ -119,7 +126,7 @@ struct jabber_buddy struct jabber_away_state *away_state; char *away_message; - time_t last_act; + time_t last_msg; jabber_buddy_flags_t flags; struct jabber_buddy *next; @@ -207,6 +214,8 @@ typedef enum GET_BUDDY_CREAT = 1, /* Try to create it, if necessary. */ GET_BUDDY_EXACT = 2, /* Get an exact match (only makes sense with bare JIDs). */ GET_BUDDY_FIRST = 4, /* No selection, simply get the first resource for this JID. */ + GET_BUDDY_BARE = 8, /* Get the bare version of the JID (possibly inexistent). */ + GET_BUDDY_BARE_OK = 16, /* Allow returning a bare JID if that seems better. */ } get_buddy_flags_t; struct jabber_error |