This commit is contained in:
Flowseal
2026-09-03 05:11:03 +03:00
parent 1b8671b3d3
commit d2b6c450eb
2 changed files with 7 additions and 0 deletions
+3
View File
@@ -14,11 +14,14 @@ from .utils import ws_domains, DC_DEFAULT_IPS
log = logging.getLogger('tg-mtproto-proxy')
# TODO: domains handling is completely broken: wrong is_media flag causes tcp_reset,
# but initial connection is still established no matter what is is_media flag is set to
class _WsPool:
WS_POOL_MAX_AGE = 120.0
WS_POOL_CHECK_INTERVAL = 5.0
REFILL_BACKOFF_INITIAL = 60.0
REFILL_BACKOFF_MAX = 3600.0
# TODO: Lower refill backoff timer
def __init__(self):
self._idle: Dict[Tuple[int, bool], deque] = {}
+4
View File
@@ -339,6 +339,10 @@ async def _handle_client(reader, writer, secret: bytes):
ws_timed_out = False
all_redirects = True
# TODO: Sometimes connection is established, and sometimes its timed out
# So we don't need to fully restrict pool refill, let it try connecting
# in the background. May be remove direct connection there completely and
# only use pool for them? But need to fix domains handling first
allow_pool_refill = now >= ip_fail_until.get(target, 0)
ws = await ws_pool.get(
dc, is_media, target, domains,