Commit Diff


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) {