repo: ngircd action: commit revision: path_from: revision_from: 7ff16e81163b3bee43ce053cb86fb2df2a023d53: path_to: revision_to:
commit 7ff16e81163b3bee43ce053cb86fb2df2a023d53 Author: Ian ChardDate: Wed Jun 24 20:28:27 2015 +0100 Don't bother looking for +N channels for an op diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c
--- 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],
-----END OF PAGE-----