commit 989c9fa531d83c9b1a302b222a4bcfeef767c2b6 from: Alexander Barton date: Mon Aug 01 21:30:55 2011 UTC 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. commit - 2fd42667c2a064bab6e28523a7e68383604a1e15 commit + 989c9fa531d83c9b1a302b222a4bcfeef767c2b6 blob - 326c1046f6d5f82597212ea4ae38f88bee104e82 blob + 3cceaeb898af3d90dd8df5b35daca4c438a00893 --- src/ngircd/irc-mode.c +++ src/ngircd/irc-mode.c @@ -594,6 +594,16 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Ori Channel_Name(Channel)); break; /* --- 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 'v': /* Voice */ if (arg_arg > mode_arg) {