about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorTassilo Schweyer <dev@welterde.de>2009-04-26 00:23:40 +0200
committerFlorian Westphal <fw@strlen.de>2009-04-26 00:30:49 +0200
commit37359799eba5233958b8b6fe665928c4e3c64889 (patch)
treef19d3d82acfb455344f2aabc96fd003182030097 /src
parent4a14fb252d1eb93905eb1dc71a11601acadf66d3 (diff)
downloadngircd-37359799eba5233958b8b6fe665928c4e3c64889.tar.gz
ngircd-37359799eba5233958b8b6fe665928c4e3c64889.zip
Fix server list announcement
When ngircd announces the list of currently known servers
to a new (connecting) server, it sent the introducer of
the servers instead of the top server.

Assuming this network:

irc1.example.com
|--irc2.example.com
|    `--irc3.example.com
|         `--irc4.example.com
`--irc5.example.com

When irc4 connects to irc3, irc3 tells irc4 that irc5 was
connected to irc2. (irc2 had introduced irc5 to irc3; but thats
not what ngircd should have sent to the new server).

This also placed users on the wrong servers.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/numeric.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ngircd/numeric.c b/src/ngircd/numeric.c
index 74c5c12b..c3d94c3d 100644
--- a/src/ngircd/numeric.c
+++ b/src/ngircd/numeric.c
@@ -131,7 +131,7 @@ Announce_Server(CLIENT * Client, CLIENT * Server)
 	if (Client_Hops(Server) == 1)
 		c = Client_ThisServer();
 	else
-		c = Client_Introducer(Server);
+		c = Client_TopServer(Server);
 
 	/* Inform new server about the one already registered in the network */
 	return IRC_WriteStrClientPrefix(Client, c, "SERVER %s %d %d :%s",