diff options
| author | Alexander Barton <alex@barton.de> | 2004-02-28 02:18:16 +0000 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2004-02-28 02:18:16 +0000 |
| commit | bdaf53e799541bef5911f7793b901b2a5d56330a (patch) | |
| tree | 11ea69f71694b8fa1c87df356b4f8d7764a7f46c /src | |
| parent | 33f4e6763b2e0d90f1ebdee92c53be0b0f647ba8 (diff) | |
| download | ngircd-bdaf53e799541bef5911f7793b901b2a5d56330a.tar.gz ngircd-bdaf53e799541bef5911f7793b901b2a5d56330a.zip | |
Fixed TRACE: don't output "Serv" lines for ourself; display more info.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/irc.c | 12 | ||||
| -rw-r--r-- | src/ngircd/messages.h | 6 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index a4355dd4..8d7f6d37 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2004 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.c,v 1.123 2003/12/26 15:55:07 alex Exp $"; +static char UNUSED id[] = "$Id: irc.c,v 1.124 2004/02/28 02:18:16 alex Exp $"; #include "imp.h" #include <assert.h> @@ -210,6 +210,7 @@ IRC_TRACE( CLIENT *Client, REQUEST *Req ) { CLIENT *from, *target, *c; CONN_ID idx, idx2; + CHAR user[CLIENT_USER_LEN]; assert( Client != NULL ); assert( Req != NULL ); @@ -251,7 +252,9 @@ IRC_TRACE( CLIENT *Client, REQUEST *Req ) if( Client_Type( c ) == CLIENT_SERVER ) { /* Server link */ - if( ! IRC_WriteStrClient( from, RPL_TRACESERVER_MSG, Client_ID( from ), Client_ID( c ), Client_Mask( c ), Option_String( Client_Conn( c )))) return DISCONNECTED; + strlcpy( user, Client_User( c ), sizeof( user )); + if( user[0] == '~' ) strlcpy( user, "unknown", sizeof( user )); + if( ! IRC_WriteStrClient( from, RPL_TRACESERVER_MSG, Client_ID( from ), Client_ID( c ), user, Client_Hostname( c ), Client_Mask( Client_ThisServer( )), Option_String( Client_Conn( c )))) return DISCONNECTED; } if(( Client_Type( c ) == CLIENT_USER ) && ( strchr( Client_Modes( c ), 'o' ))) { @@ -262,9 +265,6 @@ IRC_TRACE( CLIENT *Client, REQUEST *Req ) c = Client_Next( c ); } - /* Some information about us */ - if( ! IRC_WriteStrClient( from, RPL_TRACESERVER_MSG, Client_ID( from ), Conf_ServerName, Client_Mask( Client_ThisServer( )), Option_String( Client_Conn( Client )))) return DISCONNECTED; - IRC_SetPenalty( Client, 3 ); return IRC_WriteStrClient( from, RPL_TRACEEND_MSG, Client_ID( from ), Conf_ServerName, PACKAGE_NAME, PACKAGE_VERSION, NGIRCd_DebugLevel ); } /* IRC_TRACE */ diff --git a/src/ngircd/messages.h b/src/ngircd/messages.h index 3ac479e8..c6847cf4 100644 --- a/src/ngircd/messages.h +++ b/src/ngircd/messages.h @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2004 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 @@ -8,7 +8,7 @@ * (at your option) any later version. * Please read the file COPYING, README and AUTHORS for more information. * - * $Id: messages.h,v 1.65 2003/12/26 15:55:07 alex Exp $ + * $Id: messages.h,v 1.66 2004/02/28 02:18:16 alex Exp $ * * IRC numerics (Header) */ @@ -26,7 +26,7 @@ #define RPL_TRACELINK_MSG "200 %s Link %s-%s %s %s V%s %ld %d %d" #define RPL_TRACEOPERATOR_MSG "204 %s Oper 2 :%s" -#define RPL_TRACESERVER_MSG "206 %s Serv 1 0S 0C %s *!*@%s :V%s" +#define RPL_TRACESERVER_MSG "206 %s Serv 1 0S 0C %s[%s@%s] *!*@%s :V%s" #define RPL_STATSLINKINFO_MSG "211 %s %s %d %ld %ld %ld %ld :%ld" #define RPL_STATSCOMMANDS_MSG "212 %s %s %ld %ld %ld" #define RPL_ENDOFSTATS_MSG "219 %s %c :End of STATS report" |