X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc-channel.c;h=b286b5ac3df4cf705b18dc63b695209268083d5d;hp=d5e7bdd1b474a1882c0cca04048a624c17032ac3;hb=eccbd97e1f2599bfb76818fe6bc32967ed07e0c7;hpb=ec5ab4fcd1bc361cacb56e999b2b8f0a00caf5a9 diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index d5e7bdd1..b286b5ac 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -129,7 +129,7 @@ join_allowed(CLIENT *Client, CHANNEL *chan, const char *channame, return false; } - if (Channel_HasMode(chan, 'O') && !Client_OperByMe(Client)) { + if (Channel_HasMode(chan, 'O') && !Client_HasMode(Client, 'o')) { /* Only IRC operators are allowed! */ IRC_WriteErrClient(Client, ERR_OPONLYCHANNEL_MSG, Client_ID(Client), channame); @@ -619,7 +619,10 @@ IRC_LIST( CLIENT *Client, REQUEST *Req ) /* Gotcha! */ if (!Channel_HasMode(chan, 's') || Channel_IsMemberOf(chan, from) - || (!Conf_MorePrivacy && Client_OperByMe(Client))) { + || (!Conf_MorePrivacy + && Client_HasMode(Client, 'o') + && Client_Conn(Client) > NONE)) + { if ((Conf_MaxListSize > 0) && IRC_CheckListTooBig(from, count, Conf_MaxListSize,