updates.
authorPekka Riikonen <priikone@silcnet.org>
Sun, 11 Nov 2001 22:04:57 +0000 (22:04 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sun, 11 Nov 2001 22:04:57 +0000 (22:04 +0000)
CHANGES
apps/irssi/src/fe-common/silc/module-formats.c
apps/silcd/command_reply.c
lib/silcclient/command.c

diff --git a/CHANGES b/CHANGES
index c924468731ab9dbe8e0592c8b5308c4075ee8841..cf56b627fb81286b5d0370255e229a56b5a87d17 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+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,
index 690ff07d3bd8deb13e96a344d68a4ed5e3b41ff7..c1cdaa00c7af03bcd817458287a3b4135aae563e 100644 (file)
@@ -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 } },
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;
 }
 
index 0164d7642a3d5e16d9d0f5b96588d7c98b01cddb..1485c2bf08deb74f69491a080aff31a849b9e499 100644 (file)
@@ -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);