OperServ: JUPE — hold a server name against a rogue link
JUPE <server.name> [reason] introduces a fake server holding the name so the real one can't link; JUPE DEL <name> squits it; JUPE LIST shows them. Node-local (the introducing node owns the jupe, so it isn't federated — that would collide SIDs across nodes) and re-asserted at burst. A fake server id is allocated per jupe. New JupeServer/Squit actions serialise to the mid-link SERVER introduction and SQUIT. Admin-only.
This commit is contained in:
parent
76a7162227
commit
1daebc94a5
6 changed files with 179 additions and 2 deletions
|
|
@ -329,6 +329,11 @@ impl Protocol for InspIrcd {
|
|||
}
|
||||
NetAction::DelLine { kind, mask } => vec![self.sourced(format!("DELLINE {} {}", kind, mask))],
|
||||
NetAction::KillUser { from, uid, reason } => vec![format!(":{} KILL {} :{}", from, uid, reason)],
|
||||
// Introduce a server behind us: :<our-sid> SERVER <name> <sid> :<desc>.
|
||||
NetAction::JupeServer { name, sid, reason } => {
|
||||
vec![self.sourced(format!("SERVER {} {} :JUPED: {}", name, sid, reason))]
|
||||
}
|
||||
NetAction::Squit { target, reason } => vec![self.sourced(format!("SQUIT {} :{}", target, reason))],
|
||||
NetAction::Raw(s) => vec![s.clone()],
|
||||
// Internal: the link layer handles these before serialization.
|
||||
NetAction::DeferRegister { .. } | NetAction::DeferPassword { .. } | NetAction::SendEmail { .. } => vec![],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue