int extra_space = 0;
int i;
char *m;
+ int showsecret = 0;
+
+ if(ConfigFileEntry.secret_channels_in_whois && IsOperSpy(source_p))
+ showsecret = 1;
if(target_p->user == NULL)
{
visible = ShowChannel(source_p, chptr);
- if(visible || operspy)
+ if(visible || operspy || showsecret)
{
if((cur_len + strlen(chptr->chname) + 3) > (BUFSIZE - 5))
{
}
tlen = rb_sprintf(t, "%s%s%s ",
- visible ? "" : "!",
+ visible ? "" : "*",
find_channel_status(msptr, 1),
chptr->chname);
t += tlen;
sendto_one_numeric(source_p, RPL_WHOISBOT,
form_str(RPL_WHOISBOT),
target_p->name);
+ if(IsOper(source_p))
+ {
+ m = buf;
+ *m++ = '+';
- m = buf;
- *m++ = '+';
-
- for (i = 0; i < 128; i++) /* >= 127 is extended ascii */
- if (target_p->umodes & user_modes[i])
- *m++ = (char) i;
- *m = '\0';
+ for (i = 0; i < 128; i++) /* >= 127 is extended ascii */
+ if (target_p->umodes & user_modes[i])
+ *m++ = (char) i;
+ *m = '\0';
- sendto_one_numeric(source_p, RPL_WHOISMODES,
- form_str(RPL_WHOISMODES),
- target_p->name, buf);
+ sendto_one_numeric(source_p, RPL_WHOISMODES,
+ form_str(RPL_WHOISMODES),
+ target_p->name, buf);
+ }
if(MyClient(target_p))
{