Reorder checks
Move oper and Conf_MorePrivacy checks after checking the number of parameters.
This commit is contained in:
parent
33c2d5e4e2
commit
37609d6a4f
|
@ -1317,10 +1317,6 @@ IRC_WHOWAS( CLIENT *Client, REQUEST *Req )
|
|||
assert( Client != NULL );
|
||||
assert( Req != NULL );
|
||||
|
||||
/* Do not reveal any info on disconnected users? */
|
||||
if (Conf_MorePrivacy)
|
||||
return CONNECTED;
|
||||
|
||||
/* Wrong number of parameters? */
|
||||
if (Req->argc < 1)
|
||||
return IRC_WriteErrClient(Client, ERR_NONICKNAMEGIVEN_MSG,
|
||||
|
@ -1330,6 +1326,10 @@ IRC_WHOWAS( CLIENT *Client, REQUEST *Req )
|
|||
_IRC_GET_SENDER_OR_RETURN_(prefix, Req, Client)
|
||||
_IRC_GET_TARGET_SERVER_OR_RETURN_(target, Req, 2, prefix)
|
||||
|
||||
/* Do not reveal any info on disconnected users? */
|
||||
if (Conf_MorePrivacy)
|
||||
return CONNECTED;
|
||||
|
||||
/* Forward? */
|
||||
if (target != Client_ThisServer()) {
|
||||
IRC_WriteStrClientPrefix(target, prefix, "WHOWAS %s %s %s",
|
||||
|
|
|
@ -119,15 +119,15 @@ IRC_DIE(CLIENT * Client, REQUEST * Req)
|
|||
assert(Client != NULL);
|
||||
assert(Req != NULL);
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
#ifdef STRICT_RFC
|
||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 0)
|
||||
#else
|
||||
_IRC_ARGC_LE_OR_RETURN_(Client, Req, 1)
|
||||
#endif
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
/* Is a message given? */
|
||||
if (Req->argc > 0) {
|
||||
c = Conn_First();
|
||||
|
@ -162,11 +162,11 @@ IRC_REHASH( CLIENT *Client, REQUEST *Req )
|
|||
assert( Client != NULL );
|
||||
assert( Req != NULL );
|
||||
|
||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 0)
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 0)
|
||||
|
||||
Log(LOG_NOTICE|LOG_snotice, "Got REHASH command from \"%s\" ...",
|
||||
Client_Mask(Client));
|
||||
IRC_WriteStrClient(Client, RPL_REHASHING_MSG, Client_ID(Client));
|
||||
|
@ -191,14 +191,14 @@ IRC_RESTART( CLIENT *Client, REQUEST *Req )
|
|||
assert( Client != NULL );
|
||||
assert( Req != NULL );
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
/* Bad number of parameters? */
|
||||
if (Req->argc != 0)
|
||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||
Client_ID(Client), Req->command);
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
Log(LOG_NOTICE|LOG_snotice, "Got RESTART command from \"%s\" ...",
|
||||
Client_Mask(Client));
|
||||
NGIRCd_SignalRestart = true;
|
||||
|
@ -221,10 +221,6 @@ IRC_CONNECT(CLIENT * Client, REQUEST * Req)
|
|||
assert(Client != NULL);
|
||||
assert(Req != NULL);
|
||||
|
||||
if (Client_Type(Client) != CLIENT_SERVER
|
||||
&& !Client_HasMode(Client, 'o'))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
/* Bad number of parameters? */
|
||||
if (Req->argc != 1 && Req->argc != 2 && Req->argc != 3 &&
|
||||
Req->argc != 5 && Req->argc != 6)
|
||||
|
@ -236,6 +232,10 @@ IRC_CONNECT(CLIENT * Client, REQUEST * Req)
|
|||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||
Client_ID(Client), Req->command);
|
||||
|
||||
if (Client_Type(Client) != CLIENT_SERVER
|
||||
&& !Client_HasMode(Client, 'o'))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
from = Client;
|
||||
target = Client_ThisServer();
|
||||
|
||||
|
@ -325,14 +325,14 @@ IRC_DISCONNECT(CLIENT * Client, REQUEST * Req)
|
|||
assert(Client != NULL);
|
||||
assert(Req != NULL);
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
/* Bad number of parameters? */
|
||||
if (Req->argc != 1)
|
||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||
Client_ID(Client), Req->command);
|
||||
|
||||
if (!Op_Check(Client, Req))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
IRC_SendWallops(Client_ThisServer(), Client_ThisServer(),
|
||||
"Received DISCONNECT %s from %s",
|
||||
Req->argv[0], Client_ID(Client));
|
||||
|
@ -412,15 +412,15 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
|
|||
assert(Client != NULL);
|
||||
assert(Req != NULL);
|
||||
|
||||
from = Op_Check(Client, Req);
|
||||
if (!from)
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
/* Bad number of parameters? */
|
||||
if (Req->argc != 1 && Req->argc != 3)
|
||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||
Client_ID(Client), Req->command);
|
||||
|
||||
from = Op_Check(Client, Req);
|
||||
if (!from)
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
switch(Req->command[0]) {
|
||||
case 'g':
|
||||
case 'G':
|
||||
|
|
|
@ -341,12 +341,12 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
|
|||
assert(Client != NULL);
|
||||
assert(Req != NULL);
|
||||
|
||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 2)
|
||||
|
||||
if (Client_Type(Client) != CLIENT_SERVER
|
||||
&& !Client_HasMode(Client, 'o'))
|
||||
return Op_NoPrivileges(Client, Req);
|
||||
|
||||
_IRC_ARGC_EQ_OR_RETURN_(Client, Req, 2)
|
||||
|
||||
if (Client_Type(Client) == CLIENT_SERVER && Req->prefix) {
|
||||
from = Client_Search(Req->prefix);
|
||||
if (Client_Type(from) != CLIENT_SERVER
|
||||
|
|
Loading…
Reference in New Issue