Пинг ванильным методом и причины отказа по токину

- StatusSession: ответ на ванильный статус на том же порту.
  Первый байт потока различает наш протокол и гостей: R - наш кадр,
  иначе старый пинг (FE) или новый handshake + request + ping.
  Логин в старом стиле получает вежливый отказ словами.
- Reader: первый байт, уже прочитанный вручную, теперь правильно
  исключается из головы - раньше счётчик дважды пропускал его.
- TokenAuth: точные причины отказа (не подписано, другой сервер,
  не тот вид, истёк, не тот игрок) и Verdict для каждой сессии.
- ClientSession: первое чтение смотрит на байт и отдаёт гостей статусу;
  остальное идёт через прежнее расщепление.
- StatusTest: 5 проверок (json, modern, pong, legacy, отказ). Легаси-пинг
  читался как знаковый байт; исправлено на беззнаковый.
- StatusRouteTest: 3 проверки через настоящий сервер и настоящие порты.
- watch-game.ps1: удаляет устаревший dev-token перед стартом сервера.
This commit is contained in:
sasheg dev
2026-10-22 19:25:06 +03:00
parent 6019654188
commit d98cd83fe5
8 changed files with 1012 additions and 31 deletions
+2
View File
@@ -55,6 +55,8 @@ $suites = @(
'net.rustnotmc.server.hitbox.HitboxTest',
'net.rustnotmc.server.player.PlayerDataTest',
'net.rustnotmc.server.combat.DamageTest',
'net.rustnotmc.server.status.StatusTest',
'net.rustnotmc.server.status.StatusRouteTest',
'net.rustnotmc.server.PlayTest'
)
foreach ($suite in $suites) {