projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged from silc_1_0_branch.
[silc.git]
/
apps
/
silcd
/
idlist.c
diff --git
a/apps/silcd/idlist.c
b/apps/silcd/idlist.c
index 900092bfbdf7cebd6b0eab200b404cbbb07cb910..9acdd06844330fd6b2e7f93baaa55d344aa68687 100644
(file)
--- a/
apps/silcd/idlist.c
+++ b/
apps/silcd/idlist.c
@@
-227,7
+227,7
@@
silc_idlist_find_server_by_conn(SilcIDList id_list, char *hostname,
if (sock && ((sock->hostname && !strcasecmp(sock->hostname, hostname)) ||
(sock->ip && !strcasecmp(sock->ip, hostname)))
if (sock && ((sock->hostname && !strcasecmp(sock->hostname, hostname)) ||
(sock->ip && !strcasecmp(sock->ip, hostname)))
- && s
ock->port == port
)
+ && s
erver->id->port == htons(port)
)
break;
id_cache = NULL;
break;
id_cache = NULL;
@@
-295,8
+295,10
@@
int silc_idlist_del_server(SilcIDList id_list, SilcServerEntry entry)
if (!silc_idcache_del_by_context(id_list->servers, entry))
return FALSE;
if (!silc_idcache_del_by_context(id_list->servers, entry))
return FALSE;
- SILC_LOG_DEBUG(("Deleting server %s", entry->server_name ?
- entry->server_name : ""));
+ SILC_LOG_DEBUG(("Deleting server %s id %s", entry->server_name ?
+ entry->server_name : "",
+ entry->id ?
+ silc_id_render(entry->id, SILC_ID_SERVER) : ""));
/* Free data */
silc_free(entry->server_name);
/* Free data */
silc_free(entry->server_name);
@@
-376,6
+378,7
@@
int silc_idlist_del_client(SilcIDList id_list, SilcClientEntry entry)
silc_free(entry->username);
silc_free(entry->userinfo);
silc_free(entry->id);
silc_free(entry->username);
silc_free(entry->userinfo);
silc_free(entry->id);
+ silc_free(entry->attrs);
silc_hash_table_free(entry->channels);
memset(entry, 'F', sizeof(*entry));
silc_hash_table_free(entry->channels);
memset(entry, 'F', sizeof(*entry));
@@
-575,6
+578,7
@@
void silc_idlist_client_destructor(SilcIDCache cache,
silc_free(client->username);
silc_free(client->userinfo);
silc_free(client->id);
silc_free(client->username);
silc_free(client->userinfo);
silc_free(client->id);
+ silc_free(client->attrs);
silc_hash_table_free(client->channels);
memset(client, 'A', sizeof(*client));
silc_hash_table_free(client->channels);
memset(client, 'A', sizeof(*client));
@@
-669,6
+673,12
@@
int silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry)
silc_free(entry->channel_name);
silc_free(entry->id);
silc_free(entry->topic);
silc_free(entry->channel_name);
silc_free(entry->id);
silc_free(entry->topic);
+
+ if (entry->invite_list)
+ silc_hash_table_free(entry->invite_list);
+ if (entry->ban_list)
+ silc_hash_table_free(entry->ban_list);
+
if (entry->channel_key)
silc_cipher_free(entry->channel_key);
if (entry->key) {
if (entry->channel_key)
silc_cipher_free(entry->channel_key);
if (entry->key) {