mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 22:13:00 +00:00 
			
		
		
		
	The KILL comand verifies and logs more parameters.
This commit is contained in:
		| @@ -15,6 +15,7 @@ ngIRCd CVS-HEAD | |||||||
|   - (none) |   - (none) | ||||||
|  |  | ||||||
| ngIRCd 0.7.0 | ngIRCd 0.7.0 | ||||||
|  |   - The KILL comand verifies and logs more parameters. | ||||||
|  |  | ||||||
|   ngIRCd 0.7.0-pre2 |   ngIRCd 0.7.0-pre2 | ||||||
|   - CVS build system fixes (made autogen.sh more portable). |   - CVS build system fixes (made autogen.sh more portable). | ||||||
| @@ -449,4 +450,4 @@ ngIRCd 0.0.1, 31.12.2001 | |||||||
|  |  | ||||||
|  |  | ||||||
| --  | --  | ||||||
| $Id: ChangeLog,v 1.198 2003/04/27 11:48:06 alex Exp $ | $Id: ChangeLog,v 1.199 2003/04/29 12:19:20 alex Exp $ | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| #include "portab.h" | #include "portab.h" | ||||||
|  |  | ||||||
| static char UNUSED id[] = "$Id: irc.c,v 1.120 2003/03/31 15:54:21 alex Exp $"; | static char UNUSED id[] = "$Id: irc.c,v 1.121 2003/04/29 12:19:20 alex Exp $"; | ||||||
|  |  | ||||||
| #include "imp.h" | #include "imp.h" | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| @@ -95,8 +95,30 @@ IRC_KILL( CLIENT *Client, REQUEST *Req ) | |||||||
| 	if( c ) | 	if( c ) | ||||||
| 	{ | 	{ | ||||||
| 		/* Yes, there is such a client -- but is it a valid user? */ | 		/* Yes, there is such a client -- but is it a valid user? */ | ||||||
| 		if( Client_Type( c ) == CLIENT_SERVER ) IRC_WriteStrClient( Client, ERR_CANTKILLSERVER_MSG, Client_ID( Client )); | 		if( Client_Type( c ) == CLIENT_SERVER ) | ||||||
| 		else if( Client_Type( c ) != CLIENT_USER  )IRC_WriteStrClient( Client, ERR_NOPRIVILEGES_MSG, Client_ID( Client )); | 		{ | ||||||
|  | 			if( Client != Client_ThisServer( )) IRC_WriteStrClient( Client, ERR_CANTKILLSERVER_MSG, Client_ID( Client )); | ||||||
|  | 			else | ||||||
|  | 			{ | ||||||
|  | 				/* Oops, I should kill another server!? */ | ||||||
|  | 				Log( LOG_ERR, "Can't KILL server \"%s\"!", Req->argv[0] ); | ||||||
|  | 				conn = Client_Conn( Client_NextHop( c )); | ||||||
|  | 				assert( conn > NONE ); | ||||||
|  | 				Conn_Close( conn, NULL, "Nick collision for server!?", TRUE ); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		else if( Client_Type( c ) != CLIENT_USER  ) | ||||||
|  | 		{ | ||||||
|  | 			if( Client != Client_ThisServer( )) IRC_WriteStrClient( Client, ERR_NOPRIVILEGES_MSG, Client_ID( Client )); | ||||||
|  | 			else | ||||||
|  | 			{ | ||||||
|  | 				/* Oops, what sould I close?? */ | ||||||
|  | 				Log( LOG_ERR, "Can't KILL \"%s\": invalid client type!", Req->argv[0] ); | ||||||
|  | 				conn = Client_Conn( Client_NextHop( c )); | ||||||
|  | 				assert( conn > NONE ); | ||||||
|  | 				Conn_Close( conn, NULL, "Collision for invalid client type!?", TRUE ); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 		else | 		else | ||||||
| 		{ | 		{ | ||||||
| 			/* Kill user NOW! */ | 			/* Kill user NOW! */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Alexander Barton
					Alexander Barton