@@ -127,7 +127,7 @@ def _next_intermediate_len(self) -> Optional[int]:
127127
128128
129129async def do_fallback (reader , writer , relay_init , label ,
130- dc , is_media , media_tag ,
130+ dc : int , is_media : bool , media_tag : str ,
131131 ctx : CryptoCtx , splitter = None ):
132132 fallback_dst = DC_DEFAULT_IPS .get (dc )
133133 use_cf = proxy_config .fallback_cfproxy
@@ -141,25 +141,26 @@ async def do_fallback(reader, writer, relay_init, label,
141141 for method in methods :
142142 if method == 'cf' :
143143 ok = await _cfproxy_fallback (
144- reader , writer , relay_init , label ,
144+ reader , writer , relay_init , label , ctx ,
145145 dc = dc , is_media = is_media ,
146- ctx = ctx , splitter = splitter )
146+ splitter = splitter )
147147 if ok :
148148 return True
149149 elif method == 'tcp' and fallback_dst :
150150 log .info ("[%s] DC%d%s -> TCP fallback to %s:443" ,
151151 label , dc , media_tag , fallback_dst )
152152 ok = await _tcp_fallback (
153153 reader , writer , fallback_dst , 443 ,
154- relay_init , label , dc = dc , is_media = is_media , ctx = ctx )
154+ relay_init , label , ctx )
155155 if ok :
156156 return True
157157 return False
158158
159159
160160async def _cfproxy_fallback (reader , writer , relay_init , label ,
161- dc = None , is_media = False ,
162- ctx : CryptoCtx = None , splitter = None ):
161+ ctx : CryptoCtx ,
162+ dc : int , is_media : bool ,
163+ splitter = None ):
163164 media_tag = ' media' if is_media else ''
164165 ws = None
165166 chosen_domain = None
@@ -185,14 +186,13 @@ async def _cfproxy_fallback(reader, writer, relay_init, label,
185186
186187 stats .connections_cfproxy += 1
187188 await ws .send (relay_init )
188- await bridge_ws_reencrypt (reader , writer , ws , label ,
189+ await bridge_ws_reencrypt (reader , writer , ws , label , ctx ,
189190 dc = dc , is_media = is_media ,
190- ctx = ctx , splitter = splitter )
191+ splitter = splitter )
191192 return True
192193
193194
194- async def _tcp_fallback (reader , writer , dst , port , relay_init , label ,
195- dc = None , is_media = False , ctx : CryptoCtx = None ):
195+ async def _tcp_fallback (reader , writer , dst , port , relay_init , label , ctx : CryptoCtx ):
196196 try :
197197 rr , rw = await asyncio .wait_for (
198198 asyncio .open_connection (dst , port ), timeout = 10 )
@@ -204,15 +204,14 @@ async def _tcp_fallback(reader, writer, dst, port, relay_init, label,
204204 stats .connections_tcp_fallback += 1
205205 rw .write (relay_init )
206206 await rw .drain ()
207- await _bridge_tcp_reencrypt (reader , writer , rr , rw , label ,
208- dc = dc , is_media = is_media , ctx = ctx )
207+ await _bridge_tcp_reencrypt (reader , writer , rr , rw , label , ctx )
209208 return True
210209
211210
212211async def bridge_ws_reencrypt (reader , writer , ws : RawWebSocket , label ,
212+ ctx : CryptoCtx ,
213213 dc = None , is_media = False ,
214- ctx : CryptoCtx = None ,
215- splitter : MsgSplitter = None ):
214+ splitter : Optional [MsgSplitter ] = None ):
216215 """
217216 Bidirectional TCP(client) <-> WS(telegram) with re-encryption.
218217 client ciphertext → decrypt(clt_key) → encrypt(tg_key) → WS
@@ -309,8 +308,7 @@ async def ws_to_tcp():
309308
310309
311310async def _bridge_tcp_reencrypt (reader , writer , remote_reader , remote_writer ,
312- label , dc = None , is_media = False ,
313- ctx : CryptoCtx = None ):
311+ label , ctx : CryptoCtx ):
314312 """Bidirectional TCP <-> TCP with re-encryption."""
315313
316314 async def forward (src , dst_w , is_up ):
0 commit comments