snomasks: make +s a parametric snomask mode with the standard category letters (acdfgjklnoqrtuvwx), route each server notice by category, RPL_SNOMASKIS 008; opers default to all and narrow with +s -c etc.

This commit is contained in:
Jean Chevronnet 2026-08-15 17:06:14 +00:00
parent 309201d7fb
commit 546f6279e7
16 changed files with 131 additions and 29 deletions

View file

@ -1273,7 +1273,14 @@ fn set_helpop(f: &mut UserFlags, v: bool) {
f.helpop = v;
}
fn set_snomask(f: &mut UserFlags, v: bool) {
// the plain `+s`/`-s` path (services, or a client giving no mask) toggles the
// full default set; the client `+s <mask>` path in apply_user_modes refines it
f.snomask = v;
f.snomask_cats = if v {
crate::users::DEFAULT_SNOMASK.to_string()
} else {
String::new()
};
}
/// An oper-only boolean flag (+H / +W / +h / +s): only an operator may **set** it;