From 0ce860039dc7ed06843e9182faa4d92a4bf0c005 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 19 Jun 2002 13:04:21 +0000 Subject: [PATCH] Fixed a bug in disconnecting in irssi. --- CHANGES | 6 ++++++ apps/irssi/src/silc/core/client_ops.c | 2 +- apps/irssi/src/silc/core/silc-core.c | 15 +++++++++------ lib/silcclient/client.c | 5 +++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 4bf0a2b1..a6e6ce1a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +Wed Jun 19 16:01:51 EEST 2002 Pekka Riikonen + + * Fixed a bug in Irssi SILC client to close the connection + properly when disconnecting from server. Affected file + irssi/src/silc/core/client_ops.c. + Tue Jun 18 17:14:52 EEST 2002 Pekka Riikonen * When authenticating as founder during JOIN command, check diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index 1651b200..5c83a211 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -833,7 +833,7 @@ void silc_connect(SilcClient client, SilcClientConnection conn, { SILC_SERVER_REC *server = conn->context; - if (!server) { + if (!server || server->disconnected) { silc_client_close_connection(client, conn); return; } diff --git a/apps/irssi/src/silc/core/silc-core.c b/apps/irssi/src/silc/core/silc-core.c index 28c3d38b..6b09e1f6 100644 --- a/apps/irssi/src/silc/core/silc-core.c +++ b/apps/irssi/src/silc/core/silc-core.c @@ -150,7 +150,7 @@ static bool i_debug; static bool silc_irssi_debug_print(char *file, char *function, int line, char *message, void *context) { - printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, + printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP, "DEBUG: %s:%d: %s", function, line, message); return TRUE; } @@ -175,7 +175,9 @@ static void sig_debug_setup_changed(void) static bool silc_log_misc(SilcLogType type, char *message, void *context) { - printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP, "%s", message); + printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP, "%s: %s", + (type == SILC_LOG_INFO ? "[Info]" : + type == SILC_LOG_WARNING ? "[Warning]" : "[Error]"), message); return TRUE; } @@ -293,10 +295,6 @@ void silc_opt_callback(poptContext con, silc_debug = TRUE; silc_debug_hexdump = TRUE; silc_log_set_debug_string(arg); - silc_log_set_callback(SILC_LOG_INFO, silc_log_misc, NULL); - silc_log_set_callback(SILC_LOG_WARNING, silc_log_misc, NULL); - silc_log_set_callback(SILC_LOG_ERROR, silc_log_misc, NULL); - silc_log_set_callback(SILC_LOG_FATAL, silc_log_misc, NULL); #ifndef SILC_DEBUG fprintf(stdout, "Run-time debugging is not enabled. To enable it recompile\n" @@ -424,6 +422,11 @@ void silc_core_init(void) return; } + silc_log_set_callback(SILC_LOG_INFO, silc_log_misc, NULL); + silc_log_set_callback(SILC_LOG_WARNING, silc_log_misc, NULL); + silc_log_set_callback(SILC_LOG_ERROR, silc_log_misc, NULL); + silc_log_set_callback(SILC_LOG_FATAL, silc_log_misc, NULL); + /* Register SILC to the irssi */ rec = g_new0(CHAT_PROTOCOL_REC, 1); rec->name = "SILC"; diff --git a/lib/silcclient/client.c b/lib/silcclient/client.c index ea7aa873..0e3d8387 100644 --- a/lib/silcclient/client.c +++ b/lib/silcclient/client.c @@ -194,6 +194,8 @@ silc_client_add_connection(SilcClient client, SilcClientConnection conn; int i; + SILC_LOG_DEBUG(("Adding new connection to %s:%d", hostname, port)); + conn = silc_calloc(1, sizeof(*conn)); /* Initialize ID caches */ @@ -237,6 +239,9 @@ void silc_client_del_connection(SilcClient client, SilcClientConnection conn) { int i; + SILC_LOG_DEBUG(("Deleting connection %s%d", conn->remote_host, + conn->remote_port)); + for (i = 0; i < client->internal->conns_count; i++) if (client->internal->conns[i] == conn) { -- 2.24.0