commit f7c124297985fddf4c82fad22adcbc50677226cb from: Alexander Barton date: Thu Jan 02 18:03:05 2003 UTC - the server sets a correct default AWAY message when receiving a "MODE +a". commit - 822d3d12c8b35613e606877526eba23f92699dcc commit + f7c124297985fddf4c82fad22adcbc50677226cb blob - 8c17eba37b372feabac9027a83cc317132c8def4 blob + b36de1b15e3fa7e8ff3668daa7ce74c4ad3dfce8 --- ChangeLog +++ ChangeLog @@ -18,6 +18,8 @@ ngIRCd 0.6.x-CVS - The server no longer forwards commands to ordinary users, instead it answers with the correct error message ("no such server") now. - WHOIS commands weren't always forwarded as requested. + - The server sets a correct default AWAY message now when propagating + between servers. Older changes (sorry, only available in german language): @@ -381,4 +383,4 @@ ngIRCd 0.0.1, 31.12.2001 -- -$Id: ChangeLog,v 1.147.2.6 2003/01/01 13:46:06 alex Exp $ +$Id: ChangeLog,v 1.147.2.7 2003/01/02 18:03:05 alex Exp $ blob - 05664949a6a968283b1df72b18cbda7796cf42f2 blob + 6c07cb7b6b7a915b43afd60441aed513f3ba0000 --- src/ngircd/irc-mode.c +++ src/ngircd/irc-mode.c @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-mode.c,v 1.24 2002/12/18 14:16:21 alex Exp $"; +static char UNUSED id[] = "$Id: irc-mode.c,v 1.24.2.1 2003/01/02 18:03:05 alex Exp $"; #include "imp.h" #include @@ -156,7 +156,11 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori { case 'a': /* Away */ - if( Client_Type( Client ) == CLIENT_SERVER ) x[0] = 'a'; + if( Client_Type( Client ) == CLIENT_SERVER ) + { + x[0] = 'a'; + Client_SetAway( Client, DEFAULT_AWAY_MSG ); + } else ok = IRC_WriteStrClient( Origin, ERR_NOPRIVILEGES_MSG, Client_ID( Origin )); break; case 'i': @@ -569,13 +573,14 @@ IRC_AWAY( CLIENT *Client, REQUEST *Req ) { /* AWAY setzen */ Client_SetAway( Client, Req->argv[0] ); + Client_ModeAdd( Client, 'a' ); IRC_WriteStrServersPrefix( Client, Client, "MODE %s :+a", Client_ID( Client )); return IRC_WriteStrClient( Client, RPL_NOWAWAY_MSG, Client_ID( Client )); } else { /* AWAY loeschen */ - Client_SetAway( Client, NULL ); + Client_ModeDel( Client, 'a' ); IRC_WriteStrServersPrefix( Client, Client, "MODE %s :-a", Client_ID( Client )); return IRC_WriteStrClient( Client, RPL_UNAWAY_MSG, Client_ID( Client )); }