ZaStoGram/TMessagesProj/jni/tgnet
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh 12f2a119f7
Some checks failed
ZaStoGram source guards / guards (push) Failing after 29s
Build three ZaStoGram APKs / build (arm64-v8a, ZaStoGram-standalone-arm64-v8a, Arm64, arm64) (push) Failing after 1m51s
Build three ZaStoGram APKs / build (armeabi-v7a, ZaStoGram-standalone-armeabi-v7a, Armv7, armv7) (push) Failing after 1m57s
Build three ZaStoGram APKs / build (x86, ZaStoGram-standalone-x86, X86, x86) (push) Failing after 2m5s
Считать WEB-носитель одной общей трубой
Каждое соединение tgnet через WEB-прокси — отдельный поток на одном
носителе, у релея которого одна FIFO на направление. Медиа и выгрузки
забивали её, штатные таймеры tgnet (4–25 с и 5,5-секундная проверка
первого ответа MTProxy) срабатывали у всех соединений разом, а
переподключения ставили новые потоки в хвост той же очереди. Политика
повторяет десктоп (c8120a7a6d) и лежит в WebProxyFlow без Android-кода.

- Отдача: читатели сокетов только складывают байты в очередь потока
  (не больше 256 КиБ), кадры режет планировщик: сначала interactive,
  потом запросы download, потом upload по кругу кадрами по 64 КиБ; не
  больше 1 МиБ байт выгрузки без кредита релея, один upload-кадр после
  16 кадров других классов.
- Класс потока tgnet сообщает мосту сразу после connect() через JNI по
  локальному порту сокета; проверки прокси не трогаются.
- Приём: download-потоки держат долю общего кредита 2 МиБ
  (256 КиБ–1 МиБ) вместо окна 4 МиБ.
- Живость: соединение моста, молчащее дольше своего таймаута, спрашивает
  носитель: ждёт, пока запрос в очереди или по каналу идут чужие данные;
  мёртво после 8 с тишины после доставки, 30 с занятого канала или 64 с
  всего. Сторож моста один раз перезапускает весь носитель, если есть
  неподтверждённые байты и 20 с нет ничего от релея, или страница
  30 с не присылает WELCOME.
- Первый -404 на WEB-потоке только переподключает его; временный ключ
  сбрасывается на втором -404 до первого расшифрованного ответа.
- Выгрузка через WEB идёт по двум соединениям вместо четырёх.
- Диагностика web_proxy_carrier / web_proxy_receive_wait без секретов.

Прямые, SOCKS и настоящие MTProxy-соединения не меняются. Страж
check_web_proxy_isolation.py проверяет инварианты и собирает и
запускает JVM-тесты политики (Tools/web_proxy_flow_tests).
2026-09-23 20:34:07 +03:00
..
transport Уходить с молчащих WSS-релеев на прямое соединение 2026-08-27 18:53:48 +03:00
wss Уходить с молчащих WSS-релеев на прямое соединение 2026-08-27 18:53:48 +03:00
ApiScheme.cpp update to 12.9.0 (6966) 2026-07-16 16:46:05 +04:00
ApiScheme.h update to 12.9.0 (6966) 2026-07-16 16:46:05 +04:00
BuffersStorage.cpp Ходить к веб-релеям по IPv6, когда он доступен 2026-08-09 15:31:09 +03:00
BuffersStorage.h Add network debug logging with throttling and metrics 2026-06-27 20:03:11 +03:00
ByteArray.cpp Update to 5.2.1 2019-01-23 20:03:33 +03:00
ByteArray.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
ByteStream.cpp Update to 5.11.0 2019-09-10 13:56:11 +03:00
ByteStream.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
Config.cpp Update to 5.2.1 2019-01-23 20:03:33 +03:00
Config.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
Connection.cpp Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
Connection.h Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
ConnectionSession.cpp Update to 5.2.1 2019-01-23 20:03:33 +03:00
ConnectionSession.h Update to 5.2.1 2019-01-23 20:03:33 +03:00
ConnectionsManager.cpp Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
ConnectionsManager.h Добавить диагностику загрузки сообщений 2026-08-19 23:40:57 +03:00
ConnectionSocket.cpp Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
ConnectionSocket.h Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
ConnectionSocketStateMachine.cpp Перевести WSS на непрерывный байтовый поток 2026-08-08 19:43:26 +03:00
ConnectionSocketStateMachine.h Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
Datacenter.cpp update to 12.10.2 (7086) 2026-09-17 02:11:18 +04:00
Datacenter.h Update to 8.8.2 2022-06-21 06:51:00 +04:00
Defines.h Считать WEB-носитель одной общей трубой 2026-09-23 20:34:07 +03:00
EventObject.cpp Update to 4.9.0 2018-07-30 09:07:02 +07:00
EventObject.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
FileLog.cpp Extract mtproxy module with unified retry authority 2026-07-02 18:25:13 +03:00
FileLog.h Extract mtproxy module with unified retry authority 2026-07-02 18:25:13 +03:00
Handshake.cpp update to 11.9.1 (5900) 2025-05-01 02:05:36 +04:00
Handshake.h update to 10.13.1 (4845) 2024-06-03 10:21:03 +04:00
MTProtoScheme.cpp update to 11.8.0 (5771) 2025-03-10 17:15:31 +04:00
MTProtoScheme.h update to 11.8.0 (5771) 2025-03-10 17:15:31 +04:00
NativeByteBuffer.cpp update to 9.7.0 (3687) 2023-07-21 00:15:36 +04:00
NativeByteBuffer.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
ProxyCheckInfo.cpp update to 9.5.5 2023-03-24 15:38:14 +04:00
ProxyCheckInfo.h Extract mtproxy module with unified retry authority 2026-07-02 18:25:13 +03:00
Request.cpp update to 11.2.3 (5335) 2024-10-18 00:04:16 +04:00
Request.h update to 11.8.0 (5771) 2025-03-10 17:15:31 +04:00
Timer.cpp Update to 5.2.1 2019-01-23 20:03:33 +03:00
Timer.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
TLObject.cpp Update to 4.9.0 2018-07-30 09:07:02 +07:00
TLObject.h Update to 4.9.0 2018-07-30 09:07:02 +07:00
TLSHello.cpp update to 12.10.2 (7086) 2026-09-17 02:11:18 +04:00
TLSHello.h update to 12.10.2 (7086) 2026-09-17 02:11:18 +04:00