1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00

Correctly retry outgoing conenctions when forking a resolver failed

When ngIRCd failed to spawn a new resolver subprocess, the connection
structure was still marked as "SERVER_WAIT", and no new attempt to
connect to this server was made.

Thanks to Robert Obermeier for reporting this bug!

Closes #243.
This commit is contained in:
Alexander Barton 2018-03-25 21:55:34 +02:00
parent 798de94d65
commit b4f7aae67e

View File

@ -1,6 +1,6 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
* Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
* Copyright (c)2001-2018 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1918,8 +1918,11 @@ Check_Servers(void)
Conf_Server[i].lasttry = time_now;
Conf_Server[i].conn_id = SERVER_WAIT;
assert(Proc_GetPipeFd(&Conf_Server[i].res_stat) < 0);
Resolve_Name(&Conf_Server[i].res_stat, Conf_Server[i].host,
cb_Connect_to_Server);
/* Start resolver subprocess ... */
if (!Resolve_Name(&Conf_Server[i].res_stat, Conf_Server[i].host,
cb_Connect_to_Server))
Conf_Server[i].conn_id = NONE;
}
} /* Check_Servers */