summary refs log tree commit diff
diff options
context:
space:
mode:
authorIan Chard <ian@chard.org>2015-06-24 20:28:27 +0100
committerIan Chard <ian@chard.org>2015-06-24 20:28:27 +0100
commit7ff16e81163b3bee43ce053cb86fb2df2a023d53 (patch)
tree211b9a94e6e1c064dc0fc03e0769fade224ac05b
parentadfe5affedac5dcf3f66a1a8363429ba1a13ebeb (diff)
downloadngircd-7ff16e81163b3bee43ce053cb86fb2df2a023d53.tar.gz
ngircd-7ff16e81163b3bee43ce053cb86fb2df2a023d53.zip
Don't bother looking for +N channels for an op
-rw-r--r--src/ngircd/irc-login.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c
index 79c0dcd4..10885f28 100644
--- a/src/ngircd/irc-login.c
+++ b/src/ngircd/irc-login.c
@@ -262,16 +262,17 @@ IRC_NICK( CLIENT *Client, REQUEST *Req )
 			/* Nickname change */
 
 			/* Check that the user isn't on any channels set +N */
-			chan = Channel_First();
-			while (chan) {
-				if(Channel_IsMemberOf(chan, Client) &&
-				   Channel_HasMode(chan, 'N') &&
-				   !Client_HasMode(Client, 'o'))
-					return IRC_WriteErrClient(Client,
-								  ERR_NONICKCHANGE_MSG,
-								  Client_ID(Client),
-								  Channel_Name(chan));
-				chan = Channel_Next(chan);
+			if(!Client_HasMode(Client, 'o')) {
+				chan = Channel_First();
+				while (chan) {
+					if(Channel_IsMemberOf(chan, Client) &&
+					   Channel_HasMode(chan, 'N'))
+						return IRC_WriteErrClient(Client,
+									  ERR_NONICKCHANGE_MSG,
+									  Client_ID(Client),
+									  Channel_Name(chan));
+					chan = Channel_Next(chan);
+				}
 			}
 
 			Change_Nick(Client, target, Req->argv[0],