xline: broadcast the XLINE notice on remove and expire too, so it covers every x-line's whole lifecycle

This commit is contained in:
Jean Chevronnet 2026-08-21 15:03:36 +00:00
parent 6301b64509
commit 3ad67c6b52
No known key found for this signature in database
GPG key ID: 439666D63A9477E4
5 changed files with 69 additions and 30 deletions

View file

@ -659,7 +659,8 @@ impl Server {
return;
};
if msg.params.len() == 1 {
self.remove_xline(crate::xline::XKind::Svshold, &nick);
let setter = self.link_setter(msg);
self.remove_xline(crate::xline::XKind::Svshold, &nick, &setter);
} else if msg.params.len() >= 3 {
let Some(dur) = crate::xline::parse_duration(&msg.params[1]) else {
return;
@ -1448,7 +1449,8 @@ impl Server {
let Some(kind) = crate::xline::XKind::from_tag(&msg.params[0]) else {
return;
};
if self.remove_xline(kind, &msg.params[1]) {
let remover = self.link_setter(msg);
if self.remove_xline(kind, &msg.params[1], &remover) {
self.propagate(&msg.to_wire(), Some(via));
}
}