updates.
[silc.git] / apps / silcd / command_reply.c
index 76b641cc3a3db766e4e8c1f5aa2f81ccec2aebb8..6a9e6a12597327f3780b33218be8f53c5465bef9 100644 (file)
@@ -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;
 }