mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-25 09:01:29 +02:00
reconcile sent each mapping delta to a cluster recovered from the mapping's domain by stripping the first DNS label. That is only correct when a service's domain is exactly one label under its proxy's address. For any other shape it names a cluster no proxy declares, GetProxiesForCluster comes back empty, and the update is dropped with a debug line -- so provider and settings changes stopped reaching the proxy until it reconnected and re-snapshotted. The same derivation drove change detection, which made a change of serving proxy invisible: a placement-free endpoint keeps the same domain when its serving proxy changes, so the derived cluster was equal before and after and the move was classified as a plain update, addressed to whichever cluster the domain happened to imply. The synthesised service already carries the answer, so the reconcile cache now records it alongside the mapping and both the diff and the send read the recorded value. clusterFromMapping and currentClusterChanged are deleted rather than fixed -- there is nothing to derive once the value is carried.