Return 461 (syntax error) on "JOIN :" and "PART :"

Up to this patch ngIRCd did not return any result (GIT master) or a badly
formated 403 (":irc.server 403 test  :No such channel" [note the two
spaces!], branch-0-12-x) on the above commands, this patch changes the
behaviour to reflect ircd 2.11 which returns 461 in both cases.
This commit is contained in:
Alexander Barton 2008-07-22 13:18:19 +02:00
parent 477f2fd9e7
commit 258143897c
1 changed files with 11 additions and 0 deletions

View File

@ -214,6 +214,11 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
channame = Req->argv[0];
channame = strtok_r(channame, ",", &lastchan);
/* Make sure that "channame" is not the empty string ("JOIN :") */
if (! channame)
return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
Client_ID(Client), Req->command);
while (channame) {
flags = NULL;
@ -318,6 +323,12 @@ IRC_PART(CLIENT * Client, REQUEST * Req)
/* Loop over all the given channel names */
chan = strtok(Req->argv[0], ",");
/* Make sure that "chan" is not the empty string ("PART :") */
if (! chan)
return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
Client_ID(Client), Req->command);
while (chan) {
Channel_Part(target, Client, chan,
Req->argc > 1 ? Req->argv[1] : Client_ID(target));