From 53b98fd7e9173aec98a028535312eec82cddfeb9 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Tue, 20 Nov 2007 20:02:40 +0000 Subject: [PATCH] Fixes the wrong logging output when nested servers are introduced to the network as well as the wrong output of the LINKS command. --- ChangeLog | 4 +++- src/ngircd/irc-server.c | 15 +++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index c7eb65c5..b8c1ba76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,8 @@ ngIRCd HEAD + - Fixes the wrong logging output when nested servers are introduced + to the network as well as the wrong output of the LINKS command. - Fix code to compile using K&R C compiler and ansi2kr again. - New config option NoDNS: Disables DNS lookups when clients connect. - Fixed propagation of channel mode 'P' on server links. @@ -710,4 +712,4 @@ ngIRCd 0.0.1, 31.12.2001 -- -$Id: ChangeLog,v 1.326 2007/11/18 15:05:35 alex Exp $ +$Id: ChangeLog,v 1.327 2007/11/20 20:02:40 alex Exp $ diff --git a/src/ngircd/irc-server.c b/src/ngircd/irc-server.c index 41e89085..3fc0e2dc 100644 --- a/src/ngircd/irc-server.c +++ b/src/ngircd/irc-server.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2006 Alexander Barton (alex@barton.de) + * Copyright (c)2001-2007 Alexander Barton (alex@barton.de) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-server.c,v 1.44 2007/11/18 15:05:35 alex Exp $"; +static char UNUSED id[] = "$Id: irc-server.c,v 1.45 2007/11/20 20:02:41 alex Exp $"; #include "imp.h" #include @@ -83,8 +83,6 @@ Synchronize_Lists( CLIENT *Client ) #endif - - /** * Handler for the IRC command "SERVER". * See RFC 2813 section 4.1.2. @@ -209,8 +207,13 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) if( ! IRC_WriteStrClient( c, "SERVER %s %d %d :%s", Client_ID( Client ), Client_Hops( Client ) + 1, Client_MyToken( Client ), Client_Info( Client ))) return DISCONNECTED; } - /* Den neuen Server ueber den alten informieren */ - if( ! IRC_WriteStrClientPrefix( Client, Client_Hops( c ) == 1 ? Client_ThisServer( ) : Client_Introducer( c ), "SERVER %s %d %d :%s", Client_ID( c ), Client_Hops( c ) + 1, Client_MyToken( c ), Client_Info( c ))) return DISCONNECTED; + /* Inform the new server about this one */ + if (! IRC_WriteStrClientPrefix(Client, + Client_Hops(c) == 1 ? Client_ThisServer() : Client_TopServer(c), + "SERVER %s %d %d :%s", + Client_ID(c), Client_Hops(c) + 1, + Client_MyToken(c), Client_Info(c))) + return DISCONNECTED; } c = Client_Next( c ); } -- 2.39.2