unsigned char *id_data, *tmp;
char *nickname = NULL, *username = NULL;
char *realname = NULL;
- unsigned int idle = 0;
+ unsigned int idle = 0, mode = 0;
+ SilcBuffer channels = NULL;
argc = silc_argument_get_arg_num(cmd->args);
return;
}
+ tmp = silc_argument_get_arg_type(cmd->args, 6, &len);
+ if (tmp) {
+ channels = silc_buffer_alloc(len);
+ silc_buffer_pull_tail(channels, SILC_BUFFER_END(channels));
+ silc_buffer_put(channels, tmp, len);
+ }
+
tmp = silc_argument_get_arg_type(cmd->args, 7, &len);
+ if (tmp)
+ SILC_GET32_MSB(mode, tmp);
+
+ tmp = silc_argument_get_arg_type(cmd->args, 8, &len);
if (tmp)
SILC_GET32_MSB(idle, tmp);
client_entry->username = strdup(username);
if (realname)
client_entry->realname = strdup(realname);
+ client_entry->mode = mode;
/* Add client to cache */
silc_idcache_add(conn->client_cache, client_entry->nickname,
silc_free(client_entry->username);
if (client_entry->realname)
silc_free(client_entry->realname);
+ client_entry->mode = mode;
SILC_LOG_DEBUG(("Updating client entry"));
/* Notify application */
if (!cmd->callback)
COMMAND_REPLY((ARGS, client_entry, nickname, username, realname,
- NULL, idle));
+ channels, mode, idle));
+
+ if (channels)
+ silc_buffer_free(channels);
}
/* Received reply for WHOIS command. This maybe called several times