mirror of
https://github.com/by-sonic/tglock.git
synced 2026-09-05 18:16:09 +03:00
0dc6b7bf3e
В диагностике из #42 встречаются строки вида соединений 9 · туннелей 9 · DC5 · Запасной Telegram IP · сбоев 12 Такого сочетания не бывает: у DC1, DC3, DC5 и DC203 закреплённый адрес ровно один, и маршрута «запасной адрес» у них не существует в принципе. Значит номер и маршрут пришли из разных соединений. Так и было. `last_dc` писало соединение при разборе init, `last_route` — другое соединение после рукопожатия, двумя независимыми атомиками. У репортёра от пяти до двадцати шести одновременных соединений, поэтому пара складывалась случайно. Читается она как «до этого DC шли этим маршрутом» и в этом качестве врала — ровно тот класс дефектов, ради которого затевалась честная диагностика в #38. Теперь пара пишется одним значением в момент, когда туннель поднялся: `dc << 8 | route`. Пока туннеля не было, показывается разобранный DC и «маршрут ещё не выбран» — это состояние тоже настоящее и его терять не надо. Поля стали приватными, наружу выведены `last_dc()` и `last_route()`, чтобы рассогласовать их снаружи было нельзя. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>