/* Add client to cache, the non-formatted nickname is saved to cache */
if (!silc_idcache_add(conn->client_cache, nick, client_entry->id,
- (void *)client_entry, FALSE)) {
+ (void *)client_entry, 0, NULL)) {
silc_free(client_entry->nickname);
silc_free(client_entry->username);
silc_free(client_entry->hostname);
/* Remove the old cache entry and create a new one */
silc_idcache_del_by_context(conn->client_cache, client_entry);
silc_idcache_add(conn->client_cache, nick, client_entry->id,
- client_entry, FALSE);
+ client_entry, 0, NULL);
}
}
silc_cipher_free(client_entry->receive_key);
silc_free(client_entry->key);
silc_client_ftp_session_free_client(conn, client_entry);
+ if (client_entry->ke)
+ silc_client_abort_key_agreement(client, conn, client_entry);
silc_free(client_entry);
}
len = 0;
for (i = 0; i < clients_count; i++)
- if (clients[i]->valid)
+ if (clients[i]->valid && clients[i] != client_entry)
len++;
if (!len)
return;