X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fsilc%2Fcore%2Fsilc-servers.c;h=e16fb02cdc056fef1116a982f49259c3bf0d7483;hp=96b22dd2a1e1a12ae27668102a2b8cd3626294b9;hb=52e57c880aba9c5e89f59d962eb9af75670b76e0;hpb=ae1482a76c29db9fdcd6ed6cf63d312a37a5cb01 diff --git a/apps/irssi/src/silc/core/silc-servers.c b/apps/irssi/src/silc/core/silc-servers.c index 96b22dd2..e16fb02c 100644 --- a/apps/irssi/src/silc/core/silc-servers.c +++ b/apps/irssi/src/silc/core/silc-servers.c @@ -102,9 +102,14 @@ static void silc_send_msg_clients(SilcClient client, clients = silc_client_get_clients_local(silc_client, server->conn, rec->nick, FALSE); if (!clients) { - printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, - "%s: There is no such client (did you mean %s?)", rec->nick, - target->nickname); + if (strchr(rec->nick, '@') && target->server) + printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, + "%s: There is no such client (did you mean %s@%s?)", rec->nick, + target->nickname, target->server); + else + printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, + "%s: There is no such client (did you mean %s?)", rec->nick, + target->nickname); goto out; } @@ -275,6 +280,7 @@ static void silc_connect_cb(SilcClient client, void *context) { SILC_SERVER_REC *server = context; + FtpSession ftp; char *file; SILC_LOG_DEBUG(("Connection callback %p, status %d, error %d, message %s", @@ -348,6 +354,12 @@ static void silc_connect_cb(SilcClient client, silc_get_status_message(error), error, message ? message : ""); + /* Close FTP sessions */ + silc_dlist_start(server->ftp_sessions); + while ((ftp = silc_dlist_get(server->ftp_sessions))) + silc_client_file_close(client, conn, ftp->session_id); + silc_dlist_uninit(server->ftp_sessions); + if (server->conn) server->conn->context = NULL; server->conn = NULL; @@ -454,8 +466,6 @@ static void sig_disconnected(SILC_SERVER_REC *server) if (!IS_SILC_SERVER(server)) return; - silc_dlist_uninit(server->ftp_sessions); - if (server->conn) { /* Close connection */ silc_client_close_connection(silc_client, server->conn); @@ -470,9 +480,11 @@ static void sig_disconnected(SILC_SERVER_REC *server) } /* SILC closes the handle */ - g_io_channel_unref(net_sendbuffer_handle(server->handle)); - net_sendbuffer_destroy(server->handle, FALSE); - server->handle = NULL; + if (server->handle) { + g_io_channel_unref(net_sendbuffer_handle(server->handle)); + net_sendbuffer_destroy(server->handle, FALSE); + server->handle = NULL; + } } SERVER_REC *silc_server_init_connect(SERVER_CONNECT_REC *conn)