diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index fb7ab75..2926f9d 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -1556,11 +1556,14 @@ irc_server_recv_cb (void *arg_server, int fd) } else { - weechat_printf (server->buffer, - _("%s%s: cannot read data from socket, " - "disconnecting from server..."), - weechat_prefix ("error"), IRC_PLUGIN_NAME); - irc_server_disconnect (server, 1); + if ((num_read == 0) || ((errno != EAGAIN) && (errno != EWOULDBLOCK))) + { + weechat_printf (server->buffer, + _("%s%s: cannot read data from socket, " + "disconnecting from server..."), + weechat_prefix ("error"), IRC_PLUGIN_NAME); + irc_server_disconnect (server, 1); + } } return WEECHAT_RC_OK;