Add more penalty times in error paths
This patch changes the handlers of the "PASS", "NICK", "USER", and "SERVICE" commands to enforce a 2 second penalty when an error like "need more/other parameters" occurs. More functions should follow, I think ...
This commit is contained in:
parent
f494023b0d
commit
3bd973037a
@ -81,10 +81,12 @@ IRC_PASS( CLIENT *Client, REQUEST *Req )
|
|||||||
} else if (Client_Type(Client) == CLIENT_UNKNOWN ||
|
} else if (Client_Type(Client) == CLIENT_UNKNOWN ||
|
||||||
Client_Type(Client) == CLIENT_UNKNOWNSERVER) {
|
Client_Type(Client) == CLIENT_UNKNOWNSERVER) {
|
||||||
/* Unregistered connection, but wrong number of arguments: */
|
/* Unregistered connection, but wrong number of arguments: */
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
} else {
|
} else {
|
||||||
/* Registered connection, PASS command is not allowed! */
|
/* Registered connection, PASS command is not allowed! */
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
||||||
Client_ID(Client));
|
Client_ID(Client));
|
||||||
}
|
}
|
||||||
@ -207,11 +209,12 @@ IRC_NICK( CLIENT *Client, REQUEST *Req )
|
|||||||
Req->argv[0] );
|
Req->argv[0] );
|
||||||
} else {
|
} else {
|
||||||
/* Is this a restricted client? */
|
/* Is this a restricted client? */
|
||||||
if( Client_HasMode( Client, 'r' ))
|
if (Client_HasMode(Client, 'r')) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient( Client,
|
return IRC_WriteStrClient( Client,
|
||||||
ERR_RESTRICTED_MSG,
|
ERR_RESTRICTED_MSG,
|
||||||
Client_ID( Client ));
|
Client_ID( Client ));
|
||||||
|
}
|
||||||
target = Client;
|
target = Client;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,10 +490,12 @@ IRC_USER(CLIENT * Client, REQUEST * Req)
|
|||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
} else if (Client_Type(Client) == CLIENT_USER) {
|
} else if (Client_Type(Client) == CLIENT_USER) {
|
||||||
/* Already registered connection */
|
/* Already registered connection */
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
||||||
Client_ID(Client));
|
Client_ID(Client));
|
||||||
} else {
|
} else {
|
||||||
/* Unexpected/invalid connection state? */
|
/* Unexpected/invalid connection state? */
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient(Client, ERR_NOTREGISTERED_MSG,
|
return IRC_WriteStrClient(Client, ERR_NOTREGISTERED_MSG,
|
||||||
Client_ID(Client));
|
Client_ID(Client));
|
||||||
}
|
}
|
||||||
@ -518,9 +523,11 @@ IRC_SERVICE(CLIENT *Client, REQUEST *Req)
|
|||||||
assert(Req != NULL);
|
assert(Req != NULL);
|
||||||
|
|
||||||
if (Client_Type(Client) != CLIENT_GOTPASS &&
|
if (Client_Type(Client) != CLIENT_GOTPASS &&
|
||||||
Client_Type(Client) != CLIENT_SERVER)
|
Client_Type(Client) != CLIENT_SERVER) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
return IRC_WriteStrClient(Client, ERR_ALREADYREGISTRED_MSG,
|
||||||
Client_ID(Client));
|
Client_ID(Client));
|
||||||
|
}
|
||||||
|
|
||||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 6)
|
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 6)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user