From: Michael Poole Date: Tue, 27 Aug 2013 02:09:27 +0000 (-0400) Subject: Only respawn an IAuth process when both sockets are destroyed. X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=f8092c062a6932df138f0a9cf2855628a065c27c;hp=41657cf17a265b532015ddcc4ee38eecf2dd5daa Only respawn an IAuth process when both sockets are destroyed. --- diff --git a/ircd/s_auth.c b/ircd/s_auth.c index 95e7d5c..ddeabbc 100644 --- a/ircd/s_auth.c +++ b/ircd/s_auth.c @@ -2248,8 +2248,7 @@ static void iauth_sock_callback(struct Event *ev) switch (ev_type(ev)) { case ET_DESTROY: - /* Hm, what happened here? */ - if (!IAuthHas(iauth, IAUTH_CLOSING)) + if (!IAuthHas(iauth, IAUTH_CLOSING) && !s_active(i_stderr(iauth))) iauth_do_spawn(iauth, 1); break; case ET_READ: @@ -2322,7 +2321,8 @@ static void iauth_stderr_callback(struct Event *ev) switch (ev_type(ev)) { case ET_DESTROY: - /* We do not restart iauth here: the stdout handler does that for us. */ + if (!IAuthHas(iauth, IAUTH_CLOSING) && !s_active(i_socket(iauth))) + iauth_do_spawn(iauth, 1); break; case ET_READ: iauth_read_stderr(iauth);