Added silc_idcache_update_by_context.
authorPekka Riikonen <priikone@silcnet.org>
Wed, 29 Nov 2006 19:54:09 +0000 (19:54 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Wed, 29 Nov 2006 19:54:09 +0000 (19:54 +0000)
lib/silcapputil/silcidcache.c
lib/silcapputil/silcidcache.h

index 93364caf6ca97e04647a35ac4a813910c99bf370..5e6629477dbfee50a98096f6b759d33d97678a1a 100644 (file)
@@ -256,6 +256,22 @@ SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry,
   return TRUE;
 }
 
+/* Update entry by context */
+
+SilcBool silc_idcache_update_by_context(SilcIDCache cache, void *context,
+                                       void *old_id, void *new_id,
+                                       char *old_name, char *new_name,
+                                       SilcBool free_old_name)
+{
+  SilcIDCacheEntry c;
+
+  if (!silc_hash_table_find(cache->context_table, context, NULL, (void **)&c))
+    return FALSE;
+
+  return silc_idcache_update(cache, c, old_id, new_id, old_name, new_name,
+                            free_old_name);
+}
+
 /* Returns all cache entrys from the ID cache to the `ret' ID Cache List. */
 
 SilcBool silc_idcache_get_all(SilcIDCache cache, SilcList *ret_list)
index aed03d859d15121d0c29e3d8d16d21b1082255b0..6fcaa573d7830135ff5f375d884523cf6a3dc4b2 100644 (file)
@@ -200,7 +200,7 @@ SilcBool silc_idcache_del_by_id(SilcIDCache cache, void *id,
 SilcBool silc_idcache_del_by_context(SilcIDCache cache, void *context,
                                     void *app_context);
 
-/****f* silcapputil/SilcIDCacheAPI/silc_idcache_update_id
+/****f* silcapputil/SilcIDCacheAPI/silc_idcache_update
  *
  * SYNOPSIS
  *
@@ -225,6 +225,27 @@ SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry,
                             char *old_name, char *new_name,
                             SilcBool free_old_name);
 
+/****f* silcapputil/SilcIDCacheAPI/silc_idcache_update
+ *
+ * SYNOPSIS
+ *
+ *    SilcBool
+ *    silc_idcache_update_by_context(SilcIDCache cache, void *context,
+ *                                   void *old_id, void *new_id,
+ *                                   char *old_name, char *new_name,
+ *                                   SilcBool free_old_name);
+ *
+ * DESCRIPTION
+ *
+ *    Same as silc_idcache_update but finds the corrent ID cache entry by
+ *    the `context' added to the ID cache.
+ *
+ ***/
+SilcBool silc_idcache_update_by_context(SilcIDCache cache, void *context,
+                                       void *old_id, void *new_id,
+                                       char *old_name, char *new_name,
+                                       SilcBool free_old_name);
+
 /****f* silcapputil/SilcIDCacheAPI/silc_idcache_get_all
  *
  * SYNOPSIS