X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fcommand_reply.c;h=6a9e6a12597327f3780b33218be8f53c5465bef9;hb=7a5324e0f2a3ab8bc269bb1417134f8db4968b59;hp=76b641cc3a3db766e4e8c1f5aa2f81ccec2aebb8;hpb=5abf57fab042a9f9e4ea497cea5cdf6bb170ef62;p=silc.git diff --git a/apps/silcd/command_reply.c b/apps/silcd/command_reply.c index 76b641cc..6a9e6a12 100644 --- a/apps/silcd/command_reply.c +++ b/apps/silcd/command_reply.c @@ -134,11 +134,12 @@ silc_server_command_reply_whois_save(SilcServerCommandReplyContext cmd) SilcServer server = cmd->server; unsigned char *tmp, *id_data; char *nickname, *username, *realname, *servername = NULL; + unsigned char *fingerprint; SilcClientID *client_id; SilcClientEntry client; char global = FALSE; char *nick; - uint32 mode = 0, len, id_len; + uint32 mode = 0, len, id_len, flen; id_data = silc_argument_get_arg_type(cmd->args, 2, &id_len); nickname = silc_argument_get_arg_type(cmd->args, 3, &len); @@ -160,6 +161,8 @@ silc_server_command_reply_whois_save(SilcServerCommandReplyContext cmd) if (!client_id) return FALSE; + fingerprint = silc_argument_get_arg_type(cmd->args, 9, &flen); + /* Check if we have this client cached already. */ client = silc_idlist_find_client_by_id(server->local_list, client_id, @@ -228,6 +231,9 @@ silc_server_command_reply_whois_save(SilcServerCommandReplyContext cmd) silc_free(client_id); } + if (fingerprint && flen == sizeof(client->data.fingerprint)) + memcpy(client->data.fingerprint, fingerprint, flen); + return TRUE; }