commit 37359799eba5233958b8b6fe665928c4e3c64889 from: Tassilo Schweyer via: Florian Westphal date: Sat Apr 25 22:30:49 2009 UTC 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. commit - 4a14fb252d1eb93905eb1dc71a11601acadf66d3 commit + 37359799eba5233958b8b6fe665928c4e3c64889 blob - 74c5c12bebc44f6056ba2dc0f04856cda3deb242 blob + c3d94c3db7b53c5614fbfaf6cd6ddf1ebb60be65 --- src/ngircd/numeric.c +++ 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",