ZaStoGram_desktop/Telegram/SourceFiles
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh c8120a7a6d
All checks were successful
Desktop source guards / guards (push) Successful in 8s
Treat the WEB proxy carrier as one shared pipe
Every MTProto session through a WEB proxy is a stream on a single
carrier whose relay keeps one FIFO per direction. Bulk media and
uploads filled that FIFO, every session's own 4-8s receive timer then
fired at once, and the reconnects piled new OPENs behind the same
backlog.

- Uplink: a scheduler serves interactive streams first, download
  requests next and uploads round-robin in 64 KiB frames, with at most
  1 MiB of upload bytes uncredited by the relay (one bounded batch in
  front of a chat request); a burst guard keeps uploads from starving.
- Downlink: download streams keep only a share of a 2 MiB credit budget
  (256 KiB..1 MiB each) instead of the full 4 MiB window, so media waits
  in the backend's TCP buffers rather than in front of chat replies.
- Liveness: a WEB session asks the carrier before dropping its stream.
  It waits while its request is still queued or the downlink is busy,
  fails when the pipe is quiet for 8s after delivery, busy for 30s, or
  after 64s total. A carrier with bytes outstanding and no relay
  progress for 20s is recovered once, for all streams.
- A WEB session opens one stream instead of racing identical ones, and
  a -404 on a WEB stream reconnects first; only a second -404 before any
  reply decrypts destroys the temporary key.
- Uploads and downloads use at most two sessions per DC through a WEB
  proxy, and slow upload parts are no longer cancelled and moved.
- web_carrier diagnostics report carrier state, stalls, per-class
  stream and queue counts, credit and throughput every 10s of activity.

The policy lives in web_proxy_flow.{h,cpp} and is covered by the new
test_web_proxy_flow target and a source guard.
2026-09-23 20:29:51 +03:00
..
_other Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
api Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
boxes Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
calls Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
chat_helpers Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
codegen/scheme Merge remote-tracking branch 'upstream/dev' into dev 2026-07-14 18:46:38 +03:00
core Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
countries Restructure mtproto ownership 2026-07-08 00:07:46 +03:00
data Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
dialogs Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
e2e_cloud Rename the openmls bridge's rust_eh_personality next to tlottie 2026-09-23 17:37:22 +03:00
editor Version 7.2.8: Fix build with MSVC. 2026-09-10 21:42:00 +04:00
export Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
ffmpeg Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
history Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
info Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
inline_bots Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
intro Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
iv Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
lang Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
layout Fix #30300 undefined behaviors. 2026-09-23 13:26:41 +04:00
main Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
media Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
menu Fixed confirmation texts of mark as read for archive and all chats. 2026-09-14 10:03:23 +03:00
mtproto Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
overview Replaced qRound with base::SafeRound. 2026-09-14 18:41:41 +03:00
passport Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
payments Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
platform Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
poll Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
profile Added missing const to local references in some files. 2026-08-12 13:36:02 +03:00
settings Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
statistics [stats-export] Added saving loaded statistics to xlsx file. 2026-08-18 07:53:56 +03:00
storage Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
support Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
tde2e
test Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
tests Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
ui Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
webauthn Aligned PIN field with box rows in security key PIN box. 2026-08-10 09:05:48 +03:00
window Merge upstream dev through 939de1079b 2026-09-23 17:18:32 +03:00
apiwrap.cpp Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
apiwrap.h Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
config.h Self-hosted auto-updates via GitHub releases 2026-07-05 13:25:13 +03:00
logs.cpp Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
logs.h
main.cpp Fix the crash on quit racing OpenSSL cleanup 2026-08-10 18:42:50 +04:00
mainwidget.cpp Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
mainwidget.h Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
mainwindow.cpp Remove legacy interpret path helper. 2026-09-16 21:42:13 +04:00
mainwindow.h Remove legacy interpret path helper. 2026-09-16 21:42:13 +04:00
settings.cpp [ai] Add -testagent for silent crashes. 2026-07-02 17:49:02 +04:00
settings.h Make -cleanup stop the running app on uninstall 2026-07-20 23:14:37 +04:00
stdafx.h
tray.cpp
tray.h
tray_accounts_menu.cpp
tray_accounts_menu.h
tray_accounts_menu_dummy.cpp