Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber_util.c

    r0adce21 r979cfb4  
    142142        entry->node = node;
    143143        entry->func = func;
     144        entry->saved_at = time( NULL );
    144145        g_hash_table_insert( jd->node_cache, xt_find_attr( node, "id" ), entry );
    145146}
     
    163164{
    164165        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
     171gboolean jabber_cache_clean_entry( gpointer key, gpointer entry_, gpointer threshold_ )
    170172{
    171173        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;
    181177}
    182178
Note: See TracChangeset for help on using the changeset viewer.