summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2002-01-02 21:21:49 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2002-01-02 21:21:49 +0000
commita72f7244ff581edbeb4f8552eba92bbb6ee09ba8 (patch)
tree392facb9bf8b7eaeaa79eeb5cbf8a48a4b674be1
parentf5941211005e3d58f6f3ff68ee55b2f34f6f085c (diff)
downloadirssi-a72f7244ff581edbeb4f8552eba92bbb6ee09ba8.zip
server_disconnect() should do nothing if you call it twice, especially it
shouldn't emit the "server disconnected" again. We'll now handle the remaining data coming from server after disconnection. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2290 dbcabf3a-b0e7-0310-adc4-f8d773084564
-rw-r--r--src/core/servers.c3
-rw-r--r--src/irc/core/irc.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/core/servers.c b/src/core/servers.c
index 725010a8..89f32aea 100644
--- a/src/core/servers.c
+++ b/src/core/servers.c
@@ -334,6 +334,9 @@ void server_disconnect(SERVER_REC *server)
g_return_if_fail(IS_SERVER(server));
+ if (server->disconnected)
+ return;
+
if (server->connect_tag != -1) {
/* still connecting to server.. */
if (server->connect_pid != -1)
diff --git a/src/irc/core/irc.c b/src/irc/core/irc.c
index 64ce4af6..f2827132 100644
--- a/src/irc/core/irc.c
+++ b/src/irc/core/irc.c
@@ -376,8 +376,7 @@ static void irc_parse_incoming(SERVER_REC *server)
letting other tasks to run. */
count = 0;
server_ref(server);
- while (!server->disconnected &&
- irc_receive_line(server, &str, count < MAX_SOCKET_READS) > 0) {
+ while (irc_receive_line(server, &str, count < MAX_SOCKET_READS) > 0) {
rawlog_input(server->rawlog, str);
signal_emit_id(signal_server_incoming, 2, server, str);