projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added free_old_name param to silc_idcache_update.
[silc.git]
/
lib
/
silcapputil
/
silcidcache.c
diff --git
a/lib/silcapputil/silcidcache.c
b/lib/silcapputil/silcidcache.c
index 05959388faab0d6204b7a724a959e0f855d450ce..93364caf6ca97e04647a35ac4a813910c99bf370 100644
(file)
--- a/
lib/silcapputil/silcidcache.c
+++ b/
lib/silcapputil/silcidcache.c
@@
-223,7
+223,8
@@
SilcBool silc_idcache_del_by_context(SilcIDCache cache, void *context,
SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry,
void *old_id, void *new_id,
SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry,
void *old_id, void *new_id,
- char *old_name, char *new_name)
+ char *old_name, char *new_name,
+ SilcBool free_old_name)
{
if (old_id && new_id) {
if (!silc_hash_table_del_by_context(cache->id_table, old_id, entry))
{
if (old_id && new_id) {
if (!silc_hash_table_del_by_context(cache->id_table, old_id, entry))
@@
-244,6
+245,8
@@
SilcBool silc_idcache_update(SilcIDCache cache, SilcIDCacheEntry entry,
if (!silc_hash_table_del_by_context(cache->name_table, old_name, entry))
return FALSE;
if (!silc_hash_table_del_by_context(cache->name_table, old_name, entry))
return FALSE;
+ if (free_old_name)
+ silc_free(entry->name);
entry->name = new_name;
if (!silc_hash_table_add(cache->name_table, entry->name, entry))
entry->name = new_name;
if (!silc_hash_table_add(cache->name_table, entry->name, entry))