repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 23b07bdf50ef5cc7b57c057b6088e4f5e4d7d6da:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 23b07bdf50ef5cc7b57c057b6088e4f5e4d7d6da
Author: DNS 
Date:   Sat Oct 6 19:52:00 2012 +0200

    Allow channel admins to "de-admin" channel members

    This patch fixes unsetting of channel user mode "+a" (channel admin)
    and adds a better error message: without this patch, a channel admin is
    unable to unset this mode.

    This closes bug #142.

diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c
index 90f638d811219282b34af51c8cf8369e7548e4f7..
index ..04f50d77f8d3f5f832912f62dbd1b33211652ab5 100644
--- a/src/ngircd/irc-mode.c
+++ b/src/ngircd/irc-mode.c
@@ -697,9 +697,9 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
 		/* --- Channel user modes --- */
 		case 'q': /* Owner */
 		case 'a': /* Channel admin */
-			if(!is_oper && !is_machine && !is_owner) {
+			if(!is_oper && !is_machine && !is_owner && !is_admin) {
 				connected = IRC_WriteStrClient(Origin,
-					ERR_CHANOPRIVSNEEDED_MSG,
+					ERR_CHANOPPRIVTOOLOW_MSG,
 					Client_ID(Origin),
 					Channel_Name(Channel));
 				goto chan_exit;

-----END OF PAGE-----