New function Client_Reject() to reject clients on connect
This commit is contained in:
parent
6e28f4a7d1
commit
51a6a33056
|
@ -1097,6 +1097,39 @@ Client_StartTime(CLIENT *Client)
|
||||||
} /* Client_Uptime */
|
} /* Client_Uptime */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reject a client when logging in.
|
||||||
|
*
|
||||||
|
* This function is called when a client isn't allowed to connect to this
|
||||||
|
* server. Possible reasons are bad server password, bad PAM password,
|
||||||
|
* or that the client is G/K-Line'd.
|
||||||
|
*
|
||||||
|
* After calling this function, the client isn't connected any more.
|
||||||
|
*
|
||||||
|
* @param Client The client to reject.
|
||||||
|
* @param Reason The reason why the client has been rejected.
|
||||||
|
* @param InformClient If true, send the exact reason to the client.
|
||||||
|
*/
|
||||||
|
GLOBAL void
|
||||||
|
Client_Reject(CLIENT *Client, const char *Reason, bool InformClient)
|
||||||
|
{
|
||||||
|
char info[COMMAND_LEN];
|
||||||
|
|
||||||
|
assert(Client != NULL);
|
||||||
|
assert(Reason != NULL);
|
||||||
|
|
||||||
|
if (InformClient)
|
||||||
|
snprintf(info, sizeof(info), "Access denied: %s", Reason);
|
||||||
|
else
|
||||||
|
strcpy(info, "Access denied: Bad password?");
|
||||||
|
|
||||||
|
Log(LOG_ERR,
|
||||||
|
"User \"%s\" rejected (connection %d): %s!",
|
||||||
|
Client_Mask(Client), Client_Conn(Client), Reason);
|
||||||
|
Conn_Close(Client_Conn(Client), Reason, info, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned long
|
static unsigned long
|
||||||
Count( CLIENT_TYPE Type )
|
Count( CLIENT_TYPE Type )
|
||||||
{
|
{
|
||||||
|
|
|
@ -163,6 +163,9 @@ GLOBAL void Client_RegisterWhowas PARAMS(( CLIENT *Client ));
|
||||||
|
|
||||||
GLOBAL const char *Client_TypeText PARAMS((CLIENT *Client));
|
GLOBAL const char *Client_TypeText PARAMS((CLIENT *Client));
|
||||||
|
|
||||||
|
GLOBAL void Client_Reject PARAMS((CLIENT *Client, const char *Reason,
|
||||||
|
bool InformClient));
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
GLOBAL void Client_DebugDump PARAMS((void));
|
GLOBAL void Client_DebugDump PARAMS((void));
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue