diff options
author | Timo Sirainen <cras@irssi.org> | 2002-01-02 21:21:49 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2002-01-02 21:21:49 +0000 |
commit | a72f7244ff581edbeb4f8552eba92bbb6ee09ba8 (patch) | |
tree | 392facb9bf8b7eaeaa79eeb5cbf8a48a4b674be1 | |
parent | f5941211005e3d58f6f3ff68ee55b2f34f6f085c (diff) | |
download | irssi-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.c | 3 | ||||
-rw-r--r-- | src/irc/core/irc.c | 3 |
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); |