Fixed KILLED notify handling in normal server.
[silc.git] / apps / silcd / idlist.c
index 8a4df9cf1e30cea7858ae3fddc280bb68a80c185..c9599deb2ed21ff1236496e9a8007689dc81a23e 100644 (file)
@@ -76,6 +76,14 @@ void silc_idlist_del_data(void *entry)
     silc_hash_free(idata->hash);
   if (idata->public_key)
     silc_pkcs_public_key_free(idata->public_key);
+
+  idata->send_key = NULL;
+  idata->receive_key = NULL;
+  idata->rekey = NULL;
+  idata->hmac_send = NULL;
+  idata->hmac_receive = NULL;
+  idata->hash = NULL;
+  idata->public_key = NULL;
 }
 
 /* Purges ID cache */
@@ -565,7 +573,7 @@ void silc_idlist_client_destructor(SilcIDCache cache,
     silc_free(client->id);
     silc_hash_table_free(client->channels);
 
-    memset(client, 'F', sizeof(*client));
+    memset(client, 'A', sizeof(*client));
     silc_free(client);
   }
 }
@@ -587,7 +595,7 @@ silc_idlist_add_channel(SilcIDList id_list, char *channel_name, int mode,
 {
   SilcChannelEntry channel;
 
-  SILC_LOG_DEBUG(("Adding new channel entry"));
+  SILC_LOG_DEBUG(("Adding new channel %s", channel_name));
 
   channel = silc_calloc(1, sizeof(*channel));
   channel->channel_name = channel_name;
@@ -638,9 +646,9 @@ static void silc_idlist_del_channel_foreach(void *key, void *context,
 
 int silc_idlist_del_channel(SilcIDList id_list, SilcChannelEntry entry)
 {
-  SILC_LOG_DEBUG(("Start"));
-
   if (entry) {
+    SILC_LOG_DEBUG(("Deleting channel %s", entry->channel_name));
+
     /* Remove from cache */
     if (!silc_idcache_del_by_context(id_list->channels, entry))
       return FALSE;