X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcclient%2Fcommand_reply.c;h=a6ce15b7be312aed62252591148a1010f5b25fcf;hb=f5b4db198e71aafaec2db4eac043d2ae0151dfac;hp=e6a778690a7d84683012b96fcf41eb9063d49a6b;hpb=d0e6c7e3852954020d35a37e4e98d89b220cc733;p=silc.git diff --git a/lib/silcclient/command_reply.c b/lib/silcclient/command_reply.c index e6a77869..a6ce15b7 100644 --- a/lib/silcclient/command_reply.c +++ b/lib/silcclient/command_reply.c @@ -239,6 +239,8 @@ silc_client_command_reply_whois_save(SilcClientCommandReplyContext cmd, char *realname = NULL; uint32 idle = 0, mode = 0; SilcBuffer channels = NULL; + unsigned char *fingerprint; + uint32 fingerprint_len; argc = silc_argument_get_arg_num(cmd->args); @@ -277,6 +279,8 @@ silc_client_command_reply_whois_save(SilcClientCommandReplyContext cmd, if (tmp) SILC_GET32_MSB(idle, tmp); + fingerprint = silc_argument_get_arg_type(cmd->args, 9, &fingerprint_len); + /* Check if we have this client cached already. */ if (!silc_idcache_find_by_id_one_ext(conn->client_cache, (void *)client_id, NULL, NULL, @@ -293,6 +297,14 @@ silc_client_command_reply_whois_save(SilcClientCommandReplyContext cmd, silc_free(client_id); } + if (fingerprint && !client_entry->fingerprint) { + client_entry->fingerprint = + silc_calloc(fingerprint_len, + sizeof(*client_entry->fingerprint)); + memcpy(client_entry->fingerprint, fingerprint, fingerprint_len); + client_entry->fingerprint_len = fingerprint_len; + } + if (client_entry->status & SILC_CLIENT_STATUS_RESOLVING) client_entry->status &= ~SILC_CLIENT_STATUS_RESOLVING;