mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	- new Functions: Client_MaxUserCount(), Client_MyMaxUserCount, Adjust_Counters().
This commit is contained in:
		| @@ -17,7 +17,7 @@ | |||||||
|  |  | ||||||
| #include "portab.h" | #include "portab.h" | ||||||
|  |  | ||||||
| static char UNUSED id[] = "$Id: client.c,v 1.66 2002/12/19 04:33:27 alex Exp $"; | static char UNUSED id[] = "$Id: client.c,v 1.67 2002/12/22 23:29:09 alex Exp $"; | ||||||
|  |  | ||||||
| #include "imp.h" | #include "imp.h" | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| @@ -57,6 +57,10 @@ LOCAL LONG MyCount PARAMS(( CLIENT_TYPE Type )); | |||||||
|  |  | ||||||
| LOCAL CLIENT *New_Client_Struct PARAMS(( VOID )); | LOCAL CLIENT *New_Client_Struct PARAMS(( VOID )); | ||||||
| LOCAL VOID Generate_MyToken PARAMS(( CLIENT *Client )); | LOCAL VOID Generate_MyToken PARAMS(( CLIENT *Client )); | ||||||
|  | LOCAL VOID Adjust_Counters PARAMS(( CLIENT *Client )); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | LONG Max_Users = 0, My_Max_Users = 0; | ||||||
|  |  | ||||||
|  |  | ||||||
| GLOBAL VOID | GLOBAL VOID | ||||||
| @@ -177,6 +181,9 @@ Client_New( CONN_ID Idx, CLIENT *Introducer, CLIENT *TopServer, INT Type, CHAR * | |||||||
| 	client->next = (POINTER *)My_Clients; | 	client->next = (POINTER *)My_Clients; | ||||||
| 	My_Clients = client; | 	My_Clients = client; | ||||||
|  |  | ||||||
|  | 	/* Adjust counters */ | ||||||
|  | 	Adjust_Counters( client ); | ||||||
|  |  | ||||||
| 	return client; | 	return client; | ||||||
| } /* Client_New */ | } /* Client_New */ | ||||||
|  |  | ||||||
| @@ -414,6 +421,7 @@ Client_SetType( CLIENT *Client, INT Type ) | |||||||
| 	assert( Client != NULL ); | 	assert( Client != NULL ); | ||||||
| 	Client->type = Type; | 	Client->type = Type; | ||||||
| 	if( Type == CLIENT_SERVER ) Generate_MyToken( Client ); | 	if( Type == CLIENT_SERVER ) Generate_MyToken( Client ); | ||||||
|  | 	Adjust_Counters( Client ); | ||||||
| } /* Client_SetType */ | } /* Client_SetType */ | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -919,6 +927,20 @@ Client_UnknownCount( VOID ) | |||||||
| } /* Client_UnknownCount */ | } /* Client_UnknownCount */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GLOBAL LONG | ||||||
|  | Client_MaxUserCount( VOID ) | ||||||
|  | { | ||||||
|  | 	return Max_Users; | ||||||
|  | } /* Client_MaxUserCount */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GLOBAL LONG | ||||||
|  | Client_MyMaxUserCount( VOID ) | ||||||
|  | { | ||||||
|  | 	return My_Max_Users; | ||||||
|  | } /* Client_MyMaxUserCount */ | ||||||
|  |  | ||||||
|  |  | ||||||
| GLOBAL BOOLEAN | GLOBAL BOOLEAN | ||||||
| Client_IsValidNick( CHAR *Nick ) | Client_IsValidNick( CHAR *Nick ) | ||||||
| { | { | ||||||
| @@ -1041,4 +1063,24 @@ Generate_MyToken( CLIENT *Client ) | |||||||
| } /* Generate_MyToken */ | } /* Generate_MyToken */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | LOCAL VOID | ||||||
|  | Adjust_Counters( CLIENT *Client ) | ||||||
|  | { | ||||||
|  | 	LONG count; | ||||||
|  |  | ||||||
|  | 	assert( Client != NULL ); | ||||||
|  |  | ||||||
|  | 	if( Client->type != CLIENT_USER ) return; | ||||||
|  | 	 | ||||||
|  | 	if( Client->conn_id != NONE ) | ||||||
|  | 	{ | ||||||
|  | 		/* Local connection */ | ||||||
|  | 		count = Client_MyUserCount( ); | ||||||
|  | 		if( count > My_Max_Users ) My_Max_Users = count; | ||||||
|  | 	} | ||||||
|  | 	count = Client_UserCount( ); | ||||||
|  | 	if( count > Max_Users ) Max_Users = count; | ||||||
|  | } /* Adjust_Counters */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* -eof- */ | /* -eof- */ | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|  * (at your option) any later version. |  * (at your option) any later version. | ||||||
|  * Please read the file COPYING, README and AUTHORS for more information. |  * Please read the file COPYING, README and AUTHORS for more information. | ||||||
|  * |  * | ||||||
|  * $Id: client.h,v 1.32 2002/12/12 12:23:43 alex Exp $ |  * $Id: client.h,v 1.33 2002/12/22 23:29:09 alex Exp $ | ||||||
|  * |  * | ||||||
|  * Client management (header) |  * Client management (header) | ||||||
|  */ |  */ | ||||||
| @@ -130,6 +130,8 @@ GLOBAL LONG Client_UnknownCount PARAMS((VOID )); | |||||||
| GLOBAL LONG Client_MyUserCount PARAMS((VOID )); | GLOBAL LONG Client_MyUserCount PARAMS((VOID )); | ||||||
| GLOBAL LONG Client_MyServiceCount PARAMS((VOID )); | GLOBAL LONG Client_MyServiceCount PARAMS((VOID )); | ||||||
| GLOBAL LONG Client_MyServerCount PARAMS((VOID )); | GLOBAL LONG Client_MyServerCount PARAMS((VOID )); | ||||||
|  | GLOBAL LONG Client_MaxUserCount PARAMS(( VOID )); | ||||||
|  | GLOBAL LONG Client_MyMaxUserCount PARAMS(( VOID )); | ||||||
|  |  | ||||||
| GLOBAL BOOLEAN Client_IsValidNick PARAMS((CHAR *Nick )); | GLOBAL BOOLEAN Client_IsValidNick PARAMS((CHAR *Nick )); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Alexander Barton
					Alexander Barton