From: Tassilo Schweyer Date: Sat, 25 Apr 2009 22:23:40 +0000 (+0200) Subject: Fix server list announcement X-Git-Tag: rel-14-1~8 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=commitdiff_plain;h=37359799eba5233958b8b6fe665928c4e3c64889 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. --- 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",