if (!silc_client_nickname_parse(client, conn, (char *)nick, &parsed))
return NULL;
- if (!get_all && parsed)
+ if (!get_all)
format = (char *)nick;
- if (!parsed) {
- parsed = silc_memdup(nick, strlen(nick));
- if (!parsed)
- return NULL;
- }
SILC_LOG_DEBUG(("Find clients by nickname %s", parsed));
}
silc_list_start(list);
- if (!format && get_all) {
+ if (get_all) {
/* Take all without any further checking */
while ((id_cache = silc_list_get(list))) {
entry = id_cache->context;
int len;
if (!client->internal->params->nickname_format[0]) {
- *ret_nick = NULL;
+ *ret_nick = silc_strdup(nickname);
return TRUE;
}
return FALSE;
silc_client_empty_channel(client, conn, channel);
+ silc_client_del_channel_private_keys(client, conn, channel);
silc_hash_table_free(channel->user_list);
silc_free(channel->channel_name);
silc_free(channel->topic);
if (channel->channel_pubkeys)
silc_argument_list_free(channel->channel_pubkeys,
SILC_ARGUMENT_PUBLIC_KEY);
- silc_client_del_channel_private_keys(client, conn, channel);
silc_atomic_uninit16(&channel->internal.refcnt);
silc_rwlock_free(channel->internal.lock);
silc_schedule_task_del_by_context(conn->client->schedule, channel);