https://gitlab.synchro.net/main/sbbs/-/commit/2bdc4c33406bba9451bef6e1
Modified Files:
exec/load/ircd/server.js exec/tests/ircd/network.js state.js
Log Message:
ircd: avoid mode churn when applying channel snapshots
Applying CSYNC used to clear every channel mode, op, voice and ban before restoring the hub snapshot. Reconnecting leaves consequently displayed
local removals followed by hub additions even when their state matched.
Reconcile the authoritative snapshot against existing state instead. Remove obsolete flags, statuses and bans, add missing entries, and update changed keys, limits and channel age without resetting matching state. Preserve the setter, timestamp and spelling of retained bans. Keep hub authorization
and the existing protections against resurrecting departed users.
Add regressions for silent identical snapshots, exact state differences,
fresh channels and repeated corrections in a six-server network.
Validation: 63 state tests, 30 network tests and 9 visibility tests with an actual v2.0 leaf passed.
Reported by Accession on irc.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net