From 8502294621066fa75975aaf1659dd0199e4282b5 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 7 Jun 2001 16:36:15 +0000 Subject: [PATCH] updates. --- CHANGES | 4 ++++ apps/irssi/src/silc/core/silc-channels.c | 3 ++- apps/irssi/src/silc/core/silc-core.c | 3 +-- apps/silcd/packet_receive.c | 20 ++++++++++---------- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/CHANGES b/CHANGES index 379377b4..8b223f56 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,10 @@ Thu Jun 7 16:29:56 EEST 2001 Pekka Riikonen resolved then check it from the public key. Affected file is silcd/packet_receive.c. + * Fixed a fatal bug in Irssi SILC client. Do not send QUIT command + if the server disconnected us and the connection is not valid + anymore. Affected file irssi/src/silc/core/silc-channels.c. + Thu Jun 7 08:57:16 CEST 2001 Pekka Riikonen * Close log file after open. Affected file diff --git a/apps/irssi/src/silc/core/silc-channels.c b/apps/irssi/src/silc/core/silc-channels.c index 9c1f638a..1614ff44 100644 --- a/apps/irssi/src/silc/core/silc-channels.c +++ b/apps/irssi/src/silc/core/silc-channels.c @@ -85,6 +85,7 @@ static void silc_channels_join(SILC_SERVER_REC *server, silc_command_exec(server, "JOIN", channel); g_free(channel); } + g_strfreev(list); } @@ -99,7 +100,7 @@ static void sig_connected(SILC_SERVER_REC *server) static void sig_server_quit(SILC_SERVER_REC *server, const char *msg) { - if (IS_SILC_SERVER(server)) + if (IS_SILC_SERVER(server) && server->conn && server->conn->sock) silc_command_exec(server, "QUIT", msg); } diff --git a/apps/irssi/src/silc/core/silc-core.c b/apps/irssi/src/silc/core/silc-core.c index 510bdff2..787290cc 100644 --- a/apps/irssi/src/silc/core/silc-core.c +++ b/apps/irssi/src/silc/core/silc-core.c @@ -277,8 +277,7 @@ void silc_core_init_finish(void) silc_config = silc_client_config_alloc(SILC_CLIENT_HOME_CONFIG_FILE); /* Get user information */ -// silc_client->username = g_strdup(settings_get_str("user_name")); - silc_client->username = strdup("priikone@pelle.palle.polle.puu"); + silc_client->username = g_strdup(settings_get_str("user_name")); silc_client->hostname = silc_net_localhost(); silc_client->realname = g_strdup(settings_get_str("real_name")); diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 340a20a9..1600f0b5 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -1338,16 +1338,9 @@ SilcClientEntry silc_server_new_client(SilcServer server, hostname = silc_calloc((strlen(username) - tlen) + 1, sizeof(char)); memcpy(hostname, username + tlen + 1, strlen(username) - tlen - 1); - pident = silc_pkcs_decode_identifier(client->data.public_key->identifier); - if (pident) { - phostname = strdup(pident->host); - silc_pkcs_free_identifier(pident); - } - if (strcmp(sock->hostname, sock->ip) && strcmp(sock->hostname, hostname)) { silc_free(username); - silc_free(phostname); silc_free(hostname); if (realname) silc_free(realname); @@ -1357,11 +1350,18 @@ SilcClientEntry silc_server_new_client(SilcServer server, return NULL; } + pident = silc_pkcs_decode_identifier(client->data.public_key->identifier); + if (pident) { + phostname = strdup(pident->host); + silc_pkcs_free_identifier(pident); + } + if (!strcmp(sock->hostname, sock->ip) && phostname && strcmp(phostname, hostname)) { silc_free(username); - silc_free(phostname); silc_free(hostname); + if (phostname) + silc_free(phostname); if (realname) silc_free(realname); silc_server_disconnect_remote(server, sock, @@ -1445,8 +1445,8 @@ SilcClientEntry silc_server_new_client(SilcServer server, /* Send some nice info to the client */ SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE, - ("Welcome to the SILC Network %s@%s", - username, sock->hostname)); + ("Welcome to the SILC Network %s", + username)); SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE, ("Your host is %s, running version %s", server->config->server_info->server_name, -- 2.24.0