From 7a5324e0f2a3ab8bc269bb1417134f8db4968b59 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 11 Nov 2001 22:04:57 +0000 Subject: [PATCH] updates. --- CHANGES | 8 ++++++++ apps/irssi/src/fe-common/silc/module-formats.c | 2 +- apps/silcd/command_reply.c | 8 +++++++- lib/silcclient/command.c | 9 +++++---- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index c9244687..cf56b627 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,11 @@ +Sun Nov 11 23:56:39 EET 2001 Pekka Riikonen + + * 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 * Use ++server->cmd_ident when sending commands in server, diff --git a/apps/irssi/src/fe-common/silc/module-formats.c b/apps/irssi/src/fe-common/silc/module-formats.c index 690ff07d..c1cdaa00 100644 --- a/apps/irssi/src/fe-common/silc/module-formats.c +++ b/apps/irssi/src/fe-common/silc/module-formats.c @@ -51,7 +51,7 @@ FORMAT_REC fecommon_silc_formats[] = { /* 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 } }, 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; } diff --git a/lib/silcclient/command.c b/lib/silcclient/command.c index 0164d764..1485c2bf 100644 --- a/lib/silcclient/command.c +++ b/lib/silcclient/command.c @@ -367,6 +367,9 @@ SILC_CLIENT_CMD_FUNC(nick_change) if (conn->nickname) silc_free(conn->nickname); conn->nickname = strdup(cmd->argv[1]); + COMMAND; + } else { + COMMAND_ERROR; } silc_client_command_free(cmd); @@ -433,10 +436,8 @@ SILC_CLIENT_CMD_FUNC(nick) 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); -- 2.24.0