I have found what I think is a bug in the /list command. Mainly that +p channels do not seem to show up.

It was always my understanding that the major (only?) difference between a PRIVATE and a SECRET channel is that PRIVATE channels show up in /list. This is the way I have always used +p... I use it if I don't want people to follow me to my channel when they /whois me... but I still want it to show up in a /list.

As I recall from the u2.9 days this worked as it should. My channel always showed up in a /list. Now I can only see it (when it's +p) if I'm already in the channel. Outside clients do not get it.

I looked at the list_next_channels() function in channel.c and it looks like it's checking itself twice (is this intentional?). At the top of the function it does:

if (!cli_user(cptr) || (SecretChannel(chptr) && !find_channel_member(cptr, chptr)))
continue;


Then later on down (after the ifchecks for the /list arguments like min/max users) it does:

if (ShowChannel(cptr,chptr))
    send_reply(cptr, RPL_LIST, chptr->chname, chptr->users,
               chptr->topic);

What's the point of the ifcheck for ShowChannel? ShowChannel from the looks of it was meant to be used mainly for /whois... i.e: it only returns true if they are either on the same channel, or if the channel is public (not +p or +s). This would seem to be a redundant check to me... the SecretChannel check already took care of this... plus by using ShowChannel you negate the listing of +p channels!

Please let me know if I'm completely off my marbles here (it's happened before) or if this is a legitimate bug. If it is do I get bragging rights in the CHANGELOG? :)

Thanks for listening and donating all of your time to keeping ircu (and Undernet itself) going :)



Reply via email to