- Timestamp:
- 2008-02-03T13:54:19Z (17 years ago)
- Branches:
- master
- Children:
- 8c1eb80
- Parents:
- 0fbda193
- Location:
- protocols/jabber
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/jabber/jabber.h
r0fbda193 r979cfb4 95 95 struct jabber_cache_entry 96 96 { 97 time_t saved_at; 97 98 struct xt_node *node; 98 99 jabber_cache_event func; … … 140 141 #define JABBER_PACKET_ID "BeeP" 141 142 #define JABBER_CACHED_ID "BeeC" 143 144 /* The number of seconds to keep cached packets before garbage collecting 145 them. This gc is done on every keepalive (every minute). */ 146 #define JABBER_CACHE_MAX_AGE 600 142 147 143 148 /* RFC 392[01] stuff */ -
protocols/jabber/jabber_util.c
r0fbda193 r979cfb4 142 142 entry->node = node; 143 143 entry->func = func; 144 entry->saved_at = time( NULL ); 144 145 g_hash_table_insert( jd->node_cache, xt_find_attr( node, "id" ), entry ); 145 146 } … … 163 164 { 164 165 struct jabber_data *jd = ic->proto_data; 165 166 g_hash_table_foreach_remove( jd->node_cache, jabber_cache_clean_entry, NULL ); 167 } 168 169 gboolean jabber_cache_clean_entry( gpointer key, gpointer entry_, gpointer nullpointer ) 166 time_t threshold = time( NULL ) - JABBER_CACHE_MAX_AGE; 167 168 g_hash_table_foreach_remove( jd->node_cache, jabber_cache_clean_entry, &threshold ); 169 } 170 171 gboolean jabber_cache_clean_entry( gpointer key, gpointer entry_, gpointer threshold_ ) 170 172 { 171 173 struct jabber_cache_entry *entry = entry_; 172 struct xt_node *node = entry->node; 173 174 if( node->flags & XT_SEEN ) 175 return TRUE; 176 else 177 { 178 node->flags |= XT_SEEN; 179 return FALSE; 180 } 174 time_t *threshold = threshold_; 175 176 return entry->saved_at < *threshold; 181 177 } 182 178
Note: See TracChangeset
for help on using the changeset viewer.