- if (!silc_idcache_find_by_id_one_ext(conn->client_cache,
- (void *)client_id,
- NULL, NULL,
- silc_hash_client_id_compare, NULL,
- &id_cache)) {
- /* No we don't have it, query it from the server. Assemble argument
- table that will be sent fr the IDENTIFY command later. */
+ id_cache = NULL;
+ silc_idcache_find_by_id_one_ext(conn->client_cache,
+ (void *)client_id,
+ NULL, NULL,
+ silc_hash_client_id_compare, NULL,
+ &id_cache);
+
+ if (!id_cache || !((SilcClientEntry)id_cache->context)->username) {
+ /* No we don't have it (or it is incomplete in information), query
+ it from the server. Assemble argument table that will be sent
+ for the IDENTIFY command later. */