Enforce cloned akicks with a standing +b for ircd-enforced masks

This commit is contained in:
Jean Chevronnet 2026-07-19 04:49:31 +00:00
parent 23960adc83
commit 384f222a22
No known key found for this signature in database

View file

@ -22,6 +22,12 @@ pub fn handle(me: &str, from: &Sender, args: &[&str], ctx: &mut ServiceCtx, db:
} }
for k in &sinfo.akick { for k in &sinfo.akick {
let _ = db.akick_add(dest, &k.mask, &k.reason); let _ = db.akick_add(dest, &k.mask, &k.reason);
// Host-mask and passive-extban akicks are enforced only by a standing +b
// (echo can't match them itself); place it as AKICK ADD does, or the cloned
// entry sits inert on the target until someone runs ENFORCE.
if echo_api::ircd_enforced(&k.mask) {
ctx.channel_mode(me, dest, &format!("+b {}", k.mask));
}
} }
let _ = db.set_desc(dest, &sinfo.desc); let _ = db.set_desc(dest, &sinfo.desc);
let _ = db.set_entrymsg(dest, &sinfo.entrymsg); let _ = db.set_entrymsg(dest, &sinfo.entrymsg);