summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-mode.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c
index a29ed238..a59f085d 100644
--- a/src/ngircd/irc-mode.c
+++ b/src/ngircd/irc-mode.c
@@ -582,9 +582,13 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
 				goto chan_exit;
 			if (!set) {
 				if (is_oper || is_machine || is_owner ||
-				    is_admin || is_op || is_halfop)
+				    is_admin || is_op || is_halfop) {
 					x[0] = *mode_ptr;
-				else
+					if (Channel_HasMode(Channel, 'k'))
+						strlcpy(argadd, "*", sizeof(argadd));
+					if (arg_arg > mode_arg)
+						arg_arg++;
+				} else
 					connected = IRC_WriteErrClient(Origin,
 						ERR_CHANOPRIVSNEEDED_MSG,
 						Client_ID(Origin),