Mercurial > irccd
changeset 1152:9eb07d527091 release-4.0
irccd: fix invalid file descriptor, closes #2535
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 06 Feb 2022 16:02:04 +0100 |
parents | 1a1496eeacf4 |
children | 4d6fe5535657 |
files | lib/irccd/irccd.c lib/irccd/server.c |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/irccd/irccd.c Sun Feb 06 15:07:20 2022 +0100 +++ b/lib/irccd/irccd.c Sun Feb 06 16:02:04 2022 +0100 @@ -282,7 +282,7 @@ irc_server_incref(s); irc_server_connect(s); - LL_PREPEND(irc.servers, s); + LL_APPEND(irc.servers, s); } struct irc_server * @@ -624,7 +624,7 @@ queue = NULL; LL_FOREACH(irc.servers, s) - irc_server_flush(s, fds); + irc_server_flush(s, fds++); } int
--- a/lib/irccd/server.c Sun Feb 06 15:07:20 2022 +0100 +++ b/lib/irccd/server.c Sun Feb 06 16:02:04 2022 +0100 @@ -812,6 +812,8 @@ irc_server_connect(s); break; case IRC_SERVER_STATE_CONNECTED: + assert(pfd->fd == s->conn->fd); + if (difftime(time(NULL), s->last_tp) >= TIMEOUT) { irc_log_warn("server %s: no message in more than %u seconds", s->name, TIMEOUT); fail(s); @@ -821,6 +823,8 @@ } break; case IRC_SERVER_STATE_CONNECTING: + assert(pfd->fd == s->conn->fd); + /* * Now the conn object is ready which means the server has * to authenticate.