From: Pekka Riikonen Date: Wed, 14 Mar 2007 15:24:57 +0000 (+0000) Subject: silc_client_get_clients_local do not eturn any invalid entries. X-Git-Tag: silc.toolkit.1.1.beta1~64 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=03619820c7d5446437869fe83ba22071dd630e9b silc_client_get_clients_local do not eturn any invalid entries. --- diff --git a/lib/silcclient/client.c b/lib/silcclient/client.c index 93200986..37f757fe 100644 --- a/lib/silcclient/client.c +++ b/lib/silcclient/client.c @@ -538,9 +538,10 @@ SILC_FSM_STATE(silc_client_st_run) if (client->internal->stop) { /* Stop client libarry. If we have running connections, wait until they finish first. */ - SILC_LOG_DEBUG(("Event: stop")); - if (silc_atomic_get_int16(&client->internal->conns) == 0) + if (silc_atomic_get_int16(&client->internal->conns) == 0) { + SILC_LOG_DEBUG(("Event: stop")); silc_fsm_next(fsm, silc_client_st_stop); + } return SILC_FSM_CONTINUE; } diff --git a/lib/silcclient/client_entry.c b/lib/silcclient/client_entry.c index ae7cba71..dfbe9fae 100644 --- a/lib/silcclient/client_entry.c +++ b/lib/silcclient/client_entry.c @@ -106,15 +106,19 @@ SilcDList silc_client_get_clients_local(SilcClient client, /* Take all without any further checking */ silc_list_start(list); while ((id_cache = silc_list_get(list))) { - silc_client_ref_client(client, conn, id_cache->context); - silc_dlist_add(clients, id_cache->context); + entry = id_cache->context; + if (entry->internal.valid) { + silc_client_ref_client(client, conn, id_cache->context); + silc_dlist_add(clients, id_cache->context); + } } } else { /* Check multiple cache entries for exact match */ silc_list_start(list); while ((id_cache = silc_list_get(list))) { entry = id_cache->context; - if (silc_utf8_strcasecmp(entry->nickname, format)) { + if (silc_utf8_strcasecmp(entry->nickname, format) && + entry->internal.valid) { silc_client_ref_client(client, conn, entry); silc_dlist_add(clients, entry); }