X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fs_auth.c;fp=ircd%2Fs_auth.c;h=ddeabbc38d8d3e2c00efed37bcd07ce1eac4203b;hp=95e7d5ca1741f7c17f267c68aeeb53933e3b0b27;hb=f8092c062a6932df138f0a9cf2855628a065c27c;hpb=41657cf17a265b532015ddcc4ee38eecf2dd5daa 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);