Handle channel user modes 'a', 'h', and 'q' from remote servers

These channel user modes aren't used for anything at the moment, but
ngIRCd knows that these three modes are "channel user modes" and not
"channel modes", that is that these modes take an "nick name" argument.

Like unknown user and channel modes, these modes are saved and forwarded,
but ignored otherwise.
This commit is contained in:
Alexander Barton 2011-08-01 23:30:55 +02:00
parent 2fd42667c2
commit 989c9fa531
1 changed files with 10 additions and 0 deletions

View File

@ -594,6 +594,16 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
Channel_Name(Channel)); Channel_Name(Channel));
break; break;
/* --- Channel user modes --- */ /* --- Channel user modes --- */
case 'a':
case 'h':
case 'q':
if (Client_Type(Client) != CLIENT_SERVER) {
connected = IRC_WriteStrClient(Origin,
ERR_CHANOPRIVSNEEDED_MSG,
Client_ID(Origin),
Channel_Name(Channel));
goto chan_exit;
}
case 'o': /* Channel operator */ case 'o': /* Channel operator */
case 'v': /* Voice */ case 'v': /* Voice */
if (arg_arg > mode_arg) { if (arg_arg > mode_arg) {