summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-07-31 20:40:24 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-07-31 20:40:24 +0000
commit138079e3bdcadaf163381fa9408609bb40f045ad (patch)
treec1170b9d5225c71117ed1de58425f60b1b71dae6 /src
parent5acdedd25a0ce52dc4c049d19e33735087544d92 (diff)
downloadirssi-138079e3bdcadaf163381fa9408609bb40f045ad.zip
Fixes
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@560 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/core/server.c8
-rw-r--r--src/irc/core/irc-server.c5
2 files changed, 9 insertions, 4 deletions
diff --git a/src/core/server.c b/src/core/server.c
index 33e79856..f9ebf682 100644
--- a/src/core/server.c
+++ b/src/core/server.c
@@ -43,6 +43,8 @@ static void server_cant_connect(SERVER_REC *server, const char *msg)
signal_emit("server connect failed", 2, server, msg);
if (server->connect_tag != -1)
g_source_remove(server->connect_tag);
+ if (server->handle != NULL)
+ net_sendbuffer_destroy(server->handle, TRUE);
if (server->connect_pipe[0] != -1) {
close(server->connect_pipe[0]);
@@ -50,8 +52,8 @@ static void server_cant_connect(SERVER_REC *server, const char *msg)
}
MODULE_DATA_DEINIT(server);
+ g_free_not_null(server->nick);
g_free(server->tag);
- g_free(server->nick);
g_free(server);
}
@@ -235,8 +237,10 @@ void server_disconnect(SERVER_REC *server)
MODULE_DATA_DEINIT(server);
rawlog_destroy(server->rawlog);
line_split_free(server->buffer);
- g_free(server->tag);
+ g_free_not_null(server->version);
+ g_free_not_null(server->away_reason);
g_free(server->nick);
+ g_free(server->tag);
g_free(server);
}
diff --git a/src/irc/core/irc-server.c b/src/irc/core/irc-server.c
index 898f281e..a0b4b046 100644
--- a/src/irc/core/irc-server.c
+++ b/src/irc/core/irc-server.c
@@ -231,15 +231,16 @@ static void sig_disconnected(IRC_SERVER_REC *server)
irc_server_connect_free(server->connrec);
g_free_not_null(server->real_address);
- g_free_not_null(server->version);
g_free_not_null(server->usermode);
g_free_not_null(server->userhost);
g_free_not_null(server->last_invite);
- g_free_not_null(server->away_reason);
}
static void sig_connect_failed(IRC_SERVER_REC *server)
{
+ if (!irc_server_check(server))
+ return;
+
server_remove_channels(server);
irc_server_connect_free(server->connrec);
}