protocol: verify echos pseudoclients request servprotect (+k, by name from CAPAB USERMODES) so they cannot be killed by operators; warn if service_modes lacks it
All checks were successful
CI / check (push) Successful in 3m45s
All checks were successful
CI / check (push) Successful in 3m45s
This commit is contained in:
parent
2f70b0c133
commit
c64c3820a7
3 changed files with 44 additions and 0 deletions
|
|
@ -1124,6 +1124,14 @@ impl Engine {
|
|||
verify_ircd_dependencies(&self.network);
|
||||
Vec::new()
|
||||
}
|
||||
NetEvent::ServProtect { letter, requested } => {
|
||||
if requested {
|
||||
tracing::info!(mode = %letter, "services are servprotected (+{letter})");
|
||||
} else {
|
||||
tracing::warn!(mode = %letter, "service_modes does not request servprotect (+{letter}) — echo's pseudoclients can be killed or hijacked by operators; add it to [server] service_modes");
|
||||
}
|
||||
Vec::new()
|
||||
}
|
||||
NetEvent::Casemapping { name } => {
|
||||
// echo folds identifiers as ascii. Verify the ircd agrees, rather than
|
||||
// assuming it silently — a mismatch would desync account/channel identity.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue