diff options
author | Timo Sirainen <cras@irssi.org> | 2000-07-31 20:40:24 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-07-31 20:40:24 +0000 |
commit | 138079e3bdcadaf163381fa9408609bb40f045ad (patch) | |
tree | c1170b9d5225c71117ed1de58425f60b1b71dae6 /src | |
parent | 5acdedd25a0ce52dc4c049d19e33735087544d92 (diff) | |
download | irssi-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.c | 8 | ||||
-rw-r--r-- | src/irc/core/irc-server.c | 5 |
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); } |