mirror of
https://github.com/osmarks/ngircd.git
synced 2025-05-04 08:24:06 +00:00
Add more penalty times
Ensure before every numeric 461 there is a call to IRC_SetPenalty().
This commit is contained in:
parent
08f9d31d60
commit
bcb45da1b4
@ -323,9 +323,11 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
|
|||||||
channame = strtok_r(channame, ",", &lastchan);
|
channame = strtok_r(channame, ",", &lastchan);
|
||||||
|
|
||||||
/* Make sure that "channame" is not the empty string ("JOIN :") */
|
/* Make sure that "channame" is not the empty string ("JOIN :") */
|
||||||
if (! channame)
|
if (!channame) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
while (channame) {
|
while (channame) {
|
||||||
flags = NULL;
|
flags = NULL;
|
||||||
@ -445,9 +447,11 @@ IRC_PART(CLIENT * Client, REQUEST * Req)
|
|||||||
chan = strtok(Req->argv[0], ",");
|
chan = strtok(Req->argv[0], ",");
|
||||||
|
|
||||||
/* Make sure that "chan" is not the empty string ("PART :") */
|
/* Make sure that "chan" is not the empty string ("PART :") */
|
||||||
if (! chan)
|
if (!chan) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
while (chan) {
|
while (chan) {
|
||||||
Channel_Part(target, Client, chan,
|
Channel_Part(target, Client, chan,
|
||||||
@ -662,9 +666,11 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
|
|||||||
assert( Req != NULL );
|
assert( Req != NULL );
|
||||||
|
|
||||||
/* Bad number of parameters? */
|
/* Bad number of parameters? */
|
||||||
if (Req->argc < 2 || Req->argc == 4 || Req->argc > 5)
|
if (Req->argc < 2 || Req->argc == 4 || Req->argc > 5) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
/* Compatibility kludge */
|
/* Compatibility kludge */
|
||||||
if (Req->argc == 5)
|
if (Req->argc == 5)
|
||||||
|
@ -1146,11 +1146,13 @@ IRC_WHO(CLIENT *Client, REQUEST *Req)
|
|||||||
if (strcmp(Req->argv[1], "o") == 0)
|
if (strcmp(Req->argv[1], "o") == 0)
|
||||||
only_ops = true;
|
only_ops = true;
|
||||||
#ifdef STRICT_RFC
|
#ifdef STRICT_RFC
|
||||||
else
|
else {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client,
|
return IRC_WriteErrClient(Client,
|
||||||
ERR_NEEDMOREPARAMS_MSG,
|
ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client),
|
Client_ID(Client),
|
||||||
Req->command);
|
Req->command);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +81,7 @@ 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_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
} else {
|
} else {
|
||||||
@ -270,9 +271,11 @@ IRC_NICK( CLIENT *Client, REQUEST *Req )
|
|||||||
/* Server or service introduces new client */
|
/* Server or service introduces new client */
|
||||||
|
|
||||||
/* Bad number of parameters? */
|
/* Bad number of parameters? */
|
||||||
if (Req->argc != 2 && Req->argc != 7)
|
if (Req->argc != 2 && Req->argc != 7) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
if (Req->argc >= 7) {
|
if (Req->argc >= 7) {
|
||||||
/* RFC 2813 compatible syntax */
|
/* RFC 2813 compatible syntax */
|
||||||
|
@ -622,6 +622,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
|
|||||||
#ifdef STRICT_RFC
|
#ifdef STRICT_RFC
|
||||||
/* Only send error message in "strict" mode,
|
/* Only send error message in "strict" mode,
|
||||||
* this is how ircd2.11 and others behave ... */
|
* this is how ircd2.11 and others behave ... */
|
||||||
|
IRC_SetPenalty(Origin, 2);
|
||||||
connected = IRC_WriteErrClient(Origin,
|
connected = IRC_WriteErrClient(Origin,
|
||||||
ERR_NEEDMOREPARAMS_MSG,
|
ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Origin), Req->command);
|
Client_ID(Origin), Req->command);
|
||||||
@ -666,6 +667,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
|
|||||||
#ifdef STRICT_RFC
|
#ifdef STRICT_RFC
|
||||||
/* Only send error message in "strict" mode,
|
/* Only send error message in "strict" mode,
|
||||||
* this is how ircd2.11 and others behave ... */
|
* this is how ircd2.11 and others behave ... */
|
||||||
|
IRC_SetPenalty(Origin, 2);
|
||||||
connected = IRC_WriteErrClient(Origin,
|
connected = IRC_WriteErrClient(Origin,
|
||||||
ERR_NEEDMOREPARAMS_MSG,
|
ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Origin), Req->command);
|
Client_ID(Origin), Req->command);
|
||||||
@ -767,6 +769,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
|
|||||||
* mode, because most other servers don't do
|
* mode, because most other servers don't do
|
||||||
* it as well and some clients send "wired"
|
* it as well and some clients send "wired"
|
||||||
* MODE commands like "MODE #chan -ooo nick". */
|
* MODE commands like "MODE #chan -ooo nick". */
|
||||||
|
IRC_SetPenalty(Origin, 2);
|
||||||
connected = IRC_WriteErrClient(Origin,
|
connected = IRC_WriteErrClient(Origin,
|
||||||
ERR_NEEDMOREPARAMS_MSG,
|
ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Origin), Req->command);
|
Client_ID(Origin), Req->command);
|
||||||
|
@ -122,6 +122,7 @@ IRC_KICK(CLIENT *Client, REQUEST *Req)
|
|||||||
nickCount--;
|
nickCount--;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
}
|
}
|
||||||
|
@ -208,14 +208,18 @@ IRC_CONNECT(CLIENT * Client, REQUEST * Req)
|
|||||||
|
|
||||||
/* Bad number of parameters? */
|
/* Bad number of parameters? */
|
||||||
if (Req->argc != 1 && Req->argc != 2 && Req->argc != 3 &&
|
if (Req->argc != 1 && Req->argc != 2 && Req->argc != 3 &&
|
||||||
Req->argc != 5 && Req->argc != 6)
|
Req->argc != 5 && Req->argc != 6) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
/* Invalid port number? */
|
/* Invalid port number? */
|
||||||
if ((Req->argc > 1) && atoi(Req->argv[1]) < 1)
|
if ((Req->argc > 1) && atoi(Req->argv[1]) < 1) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
if (Client_Type(Client) != CLIENT_SERVER
|
if (Client_Type(Client) != CLIENT_SERVER
|
||||||
&& !Client_HasMode(Client, 'o'))
|
&& !Client_HasMode(Client, 'o'))
|
||||||
@ -391,9 +395,11 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
|
|||||||
assert(Req != NULL);
|
assert(Req != NULL);
|
||||||
|
|
||||||
/* Bad number of parameters? */
|
/* Bad number of parameters? */
|
||||||
if (Req->argc != 1 && Req->argc != 3)
|
if (Req->argc != 1 && Req->argc != 3) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
from = Op_Check(Client, Req);
|
from = Op_Check(Client, Req);
|
||||||
if (!from)
|
if (!from)
|
||||||
|
@ -72,10 +72,12 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
LogDebug("Connection %d: got SERVER command (new server link) ...",
|
LogDebug("Connection %d: got SERVER command (new server link) ...",
|
||||||
Client_Conn(Client));
|
Client_Conn(Client));
|
||||||
|
|
||||||
if (Req->argc != 2 && Req->argc != 3)
|
if (Req->argc != 2 && Req->argc != 3) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client),
|
Client_ID(Client),
|
||||||
Req->command);
|
Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
/* Get configuration index of new remote server ... */
|
/* Get configuration index of new remote server ... */
|
||||||
for (i = 0; i < MAX_SERVERS; i++)
|
for (i = 0; i < MAX_SERVERS; i++)
|
||||||
@ -183,9 +185,11 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
{
|
{
|
||||||
/* New server is being introduced to the network */
|
/* New server is being introduced to the network */
|
||||||
|
|
||||||
if (Req->argc != 4)
|
if (Req->argc != 4) {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
|
|
||||||
/* check for existing server with same ID */
|
/* check for existing server with same ID */
|
||||||
if (!Client_CheckID(Client, Req->argv[0]))
|
if (!Client_CheckID(Client, Req->argv[0]))
|
||||||
@ -231,9 +235,11 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
Client_MyToken(c), Client_Info(c));
|
Client_MyToken(c), Client_Info(c));
|
||||||
|
|
||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
} else
|
} else {
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
}
|
||||||
} /* IRC_SERVER */
|
} /* IRC_SERVER */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -510,6 +510,7 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors)
|
|||||||
if (Req->argc > 2) {
|
if (Req->argc > 2) {
|
||||||
if (!SendErrors)
|
if (!SendErrors)
|
||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
|
IRC_SetPenalty(Client, 2);
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user