Module: ngircd.git Branch: master Commit: 37359799eba5233958b8b6fe665928c4e3c64889 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=37359...
Author: Tassilo Schweyer dev@welterde.de Date: Sun Apr 26 00:23:40 2009 +0200
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.
---
src/ngircd/numeric.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/ngircd/numeric.c b/src/ngircd/numeric.c index 74c5c12..c3d94c3 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",