mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-12 17:59:06 +02:00
The normaliser's predicate never matched under MySQL's default case-insensitive collation, and the comment called that the right answer because nothing on MySQL was invisible. Only the SQL lookups are tolerant there: the domain lookup is followed by an exact Go compare in SynthesizeServiceForDomain, and the proxy's host map is keyed by the domain verbatim, so a mixed-case row still missed. Spell the predicate byte-wise on MySQL so the fold applies. Two rows whose identities differ only by case would fold onto one endpoint, which the unique index refuses with a driver message that names no row. Both the reshape and the normaliser now stop first and name the hostname that needs a human, in the same voice as the reshape's existing loud failure. The comments cited SNI folding as the reason the columns must be lowercase; the SNI router folds both sides and would have matched. The readers that miss are the exact ones, and the comments now name those. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sa3DsBDP3VciAi4PPG17L6