commit 7ff16e81163b3bee43ce053cb86fb2df2a023d53 from: Ian Chard date: Wed Jun 24 19:28:27 2015 UTC Don't bother looking for +N channels for an op commit - adfe5affedac5dcf3f66a1a8363429ba1a13ebeb commit + 7ff16e81163b3bee43ce053cb86fb2df2a023d53 blob - 79c0dcd42cb3eb108410077fba0e62a25889d724 blob + 10885f281ef4ce2b4adc3df97c06356ab074e227 --- src/ngircd/irc-login.c +++ 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],