+Thu Jun 7 21:25:31 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
+
+ * Fixed silc_client_get_clients_local to check the nick's
+ server also if nick@server nickname string is given to the
+ function. Affected file is lib/silcclient/client_entry.c.
+
Wed Jun 6 18:33:05 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
* Added notify callback to silc_schedule_init which can be used to
SilcDList clients;
SilcClientEntry entry;
char nick[128 + 1], *nicknamec, *parsed = NULL, *format = NULL;
+ char server[256 + 1];
if (!client || !conn || !nickname)
return NULL;
/* Get nickname from nickname@server string */
- silc_parse_userfqdn(nickname, nick, sizeof(nick), NULL, 0);
+ silc_parse_userfqdn(nickname, nick, sizeof(nick), server, sizeof(server));
/* Parse nickname in case it is formatted */
if (!silc_client_nickname_parse(client, conn, (char *)nick, &parsed))
/* Check multiple cache entries for exact match */
while ((id_cache = silc_list_get(list))) {
entry = id_cache->context;
+
+ /* If server was provided, find entries that either have no server
+ set or have the same server. Ignore those that have different
+ server. */
+ if (server[0] && entry->server &&
+ !silc_utf8_strcasecmp(entry->server, server))
+ continue;
+
if (silc_utf8_strcasecmp(entry->nickname,
format ? format : parsed) &&
(!get_valid || entry->internal.valid)) {
/** Wait for command reply */
silc_fsm_set_state_context(fsm, NULL);
silc_fsm_next_later(fsm, silc_client_command_reply_timeout,
- cmd->cmd != SILC_COMMAND_PING ? 25 : 60, 0);
+ cmd->cmd != SILC_COMMAND_PING ? 40 : 60, 0);
return SILC_FSM_WAIT;
}