repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 60bb40d67a8d7c1e38a5d8ca2b7968cf08706008:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 60bb40d67a8d7c1e38a5d8ca2b7968cf08706008
Author: Alexander Barton 
Date:   Thu Dec 2 13:38:42 2010 +0100

    Reset ID of outgoing server link on DNS error correctly

    Not resetting the ID prevents the daemon from trying to re-establish
    outgoing server links when the DNS resolver failed to resole a hostname.

diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index 2d5e1295f4341b1675db274f0263f66fda92b3f8..
index ..a92f99f751b61461710c0280942a4a972d3d5598 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -1968,8 +1968,11 @@ cb_Connect_to_Server(int fd, UNUSED short events)

 	/* Read result from pipe */
 	len = Proc_Read(&Conf_Server[i].res_stat, dest_addrs, sizeof(dest_addrs));
-	if (len == 0)
+	if (len == 0) {
+		/* Error resolving hostname: reset server structure */
+		Conf_Server[i].conn_id = NONE;
 		return;
+	}

 	assert((len % sizeof(ng_ipaddr_t)) == 0);

-----END OF PAGE-----