+Sun Nov 11 23:56:39 EET 2001 Pekka Riikonen <priikone@silcnet.org>
+
+ * Save fingerprint in WHOIS command reply in server.
+ Affected file silcd/command_reply.c.
+
+ * Fixed NICK commands pending callback registration.
+ Affected file lib/silcclient/command.c.
+
Sun Nov 11 10:49:10 EET 2001 Pekka Riikonen <priikone@silcnet.org>
* Use ++server->cmd_ident when sending commands in server,
/* WHOIS, WHOWAS and USERS (alias WHO) messages */
{ NULL, "Who Queries", 0 },
- { "whois", "{nick $0} {nickhost $1@$2}%: nickname : $3 ($4)", 5, { 0, 0, 0, 0, 0 } },
+ { "whois", "{nick $0} {nickhost $1@$2}%: nickname : $3 ($4)", 5, { 0, 0, 0, 0, 0 } },
{ "whois_realname", " realname : $0", 1, { 0 } },
{ "whois_channels", " channels : $0", 1, { 0 } },
{ "whois_modes", " modes : $0", 1, { 0 } },
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);
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,
silc_free(client_id);
}
+ if (fingerprint && flen == sizeof(client->data.fingerprint))
+ memcpy(client->data.fingerprint, fingerprint, flen);
+
return TRUE;
}
if (conn->nickname)
silc_free(conn->nickname);
conn->nickname = strdup(cmd->argv[1]);
+ COMMAND;
+ } else {
+ COMMAND_ERROR;
}
silc_client_command_free(cmd);
silc_client_command_destructor,
silc_client_command_nick_change,
silc_client_command_dup(cmd));
- cmd->pending = 1;
-
- /* Notify application */
- COMMAND;
+ cmd->pending = TRUE;
+ return;
out:
silc_client_command_free(cmd);