X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc-login.c;h=9fca622ba0ea66422940e2d71dc2dff0d5f2eee4;hp=79c0dcd42cb3eb108410077fba0e62a25889d724;hb=b8482fd3cfdb429aec75575958f4d5d4e9ae22df;hpb=adfe5affedac5dcf3f66a1a8363429ba1a13ebeb diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 79c0dcd4..9fca622b 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -262,16 +262,18 @@ 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_Type(Client) == CLIENT_USER && + !Client_HasMode(Client, 'o')) { + chan = Channel_First(); + while (chan) { + if(Channel_HasMode(chan, 'N') && + Channel_IsMemberOf(chan, Client)) + return IRC_WriteErrClient(Client, + ERR_NONICKCHANGE_MSG, + Client_ID(Client), + Channel_Name(chan)); + chan = Channel_Next(chan); + } } Change_Nick(Client, target, Req->argv[0],