I think that 'moderator vs admin' is a pretty common set of priv levels,
whereas 'oper vs admin' is a little confusing, esp. to less irc-savvy
people.
/SAJOIN and /SAMODE are really common for joining channels to check out
what's going on and for e.g. opping someone when nobody in the channel
is opered, so it makes sense for mods to have those. I feel similarly
about vhosts, they're usually something that's delegated to less-prived
opers.
Changed the whois line from 'a server admin' to 'the server admin' to
make it a bit more clear that this is one single user, rather than a set
of privs to be shared. And it's a tiny thing, but removed the 'less
privileged' term from alice's oper block because it felt a bit dodgy.
Tor listeners should never see an STS cap.
Add an undocumented 'hide-sts' key for listeners that hides the STS cap.
This can be used if the listener is secured at layer 3 or 4 (VPNs,
E2E mixnets). It will be necessary to add the relevant IPs to `secure-nets`.
Store the channel-user modes of always-on clients along with their
channel memberships, restore them on server startup. This will coexist
alongside /CS AMODE, which autoapplies modes to clients on join regardless
of their always-on status.
This makes invoking the script multiple times with the same input return
the same result, which may not be the case before because sets are
unordered and thus the channel modes can become reordered across
multiple invocations of the script.
For example, if the mlock is set to `-i`, `i` is not present in the
`modes` and thus it would error.
I'm inclined to think that the negative mlock feature doesn't behave
correctly, because the mlock of `-i` (or `-n`) would prevent anyone from
ever setting those modes on the channel. Which this does not appear to
be the case.
Fixes #1401