Commit Graph

2 Commits

Author SHA1 Message Date
Paul Lorenz 455bb79a94 Scope terminator operations to the requesting router. Fixes #4236
- rejects a remove or update request whose terminator is owned by a different
  router, closing the two fabric handlers the batch fix did not cover
- adds a unit test for the single-terminator ownership check
- adds an end-to-end test that drives the fabric control channel from an
  enrolled router against a second router's terminator, covering single remove,
  batch remove, and re-weight, plus a control that a router can still remove its
  own
2026-08-07 14:50:29 -04:00
Paul Lorenz 8ef4e50b02 Reject terminator removals from a router that does not own them. Fixes #4166
- filters the fabric RemoveTerminators handler so a router can only remove terminators
  whose owning router matches the request source; ids owned by another router are dropped
  and logged rather than deleted
- keeps absent ids so a delete racing a not-yet-applied create is still ordered after it
- the edge control channel already enforces this via verifyTerminator

Backport of #4165. release-v2.0.x has no RemoveTerminatorsV2, so only the v1 handler
is affected.
2026-07-24 15:50:38 -04:00