about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2010-10-27 21:59:51 +0200
committerAlexander Barton <alex@barton.de>2010-10-27 21:59:51 +0200
commitd7ad956a06af2bde1cfcf2ed8194b6a84d69d968 (patch)
treee71d48160bba2bfe7a386a93f326152f2abd297c
parente2c92900300604c000af86008dad086527a04345 (diff)
downloadngircd-d7ad956a06af2bde1cfcf2ed8194b6a84d69d968.tar.gz
ngircd-d7ad956a06af2bde1cfcf2ed8194b6a84d69d968.zip
Fix connect attempts to further IP addresses of outgoing server links
If a hostname resolves to more than one IP address (round-robin DNS,
IPv4 and IPv6) and an attempt to connect to the first address fails,
ngIRCd should try to connect to the 2nd address, 3rd address etc.

But because of a wrong variable used in the call to New_Server(),
the wrong server structure has been used in further connection attemps
which possibly lead to connection attempts to already connected servers.
-rw-r--r--src/ngircd/conn.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index bbb186e9..2d5e1295 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -207,7 +207,7 @@ cb_connserver(int sock, UNUSED short what)
 
 		if (ng_ipaddr_af(&Conf_Server[server].dst_addr[0])) {
 			/* more addresses to try... */
-			New_Server(res, &Conf_Server[server].dst_addr[0]);
+			New_Server(server, &Conf_Server[server].dst_addr[0]);
 			/* connection to dst_addr[0] is now in progress, so
 			 * remove this address... */
 			Conf_Server[server].dst_addr[0] =