What is the difference between channel modes +s and +p
*** XuNiL sets mode +s-p
+p or +s, does it matter? Yes and no.
+s = totally secret
+p = totally private?
There are two channel modes, +p meaning private and +s meaning secret.
The two modes make that the channel won’t be shown in the
WHOIS reply of a user
or in any listing (
/SQUERY Alis list,
/LIST or such).
Both can’t be set together. And uppon setting one mode, the other one
is automatically unset.
The main difference between the modes is that +s is a bit “more” than +p. If a
channel is “secret” the server will act as if it doesn’t exist for queries
outside of the channel. (For example if somebody who is
not on the channel does
NAMES.) The only exception to this rule is the command
MODE which works correctly in any case (it just doesn’t show the values of
+k to people outside BTW).
→ NAMES #private_chan ← :irc.arnes.si 353 fic * #private_chan : ← :irc.arnes.si 366 fic #private_chan :End of NAMES list. ← NAMES #secret_chan ← :irc.arnes.si 366 fic #secret_chan :End of NAMES list. ← NAMES #nonexisting_channel ← :irc.arnes.si 366 fic #nonexisting_channel :End of NAMES list.
If there were users on the private channel who were not invisible (usermode
+i), NAMES would show them. (If you
JOIN the channel,
NAMES shows all the
+p don’t have any impact then.)
+s channel” a not invisible user might have joined has also impact on his
appereance in a
The old logic was that if some user is invisible and has joined a secret-chan,
he won’t be shown by
WHOIS - i.e. he would be treated as if he had
+i usermode set.
With the well known “
hemp” patch written by jv that logic changes. The
m_who” was rewritten and is now less CPU consuming than before. It
now also shows visible people, who joined any number of secret channels. However
WHOIS still works the same as before.
Notice that also
+i users are shown if you do
WHOIS with the exact nick.
Invisibility matters just for using wildcards.