@@ -130,10 +130,11 @@ async def parse(self, reader, writer, auth, authtable, **kw):
130130 writer .write (b'\x05 \x00 \x00 ' + header + data )
131131 return host_name , port , b''
132132 async def connect (self , reader_remote , writer_remote , rauth , host_name , port , initbuf , ** kw ):
133- writer_remote .write ((b'\x05 \x01 \x02 \x01 ' + b'' .join (packstr (i ) for i in rauth .split (b':' , 1 )) if rauth else b'\x05 \x01 \x00 ' ) + b'\x05 \x01 \x00 \x03 ' + packstr (host_name .encode ()) + port .to_bytes (2 , 'big' ) + initbuf )
133+ writer_remote .write ((b'\x05 \x01 \x02 \x01 ' + b'' .join (packstr (i ) for i in rauth .split (b':' , 1 )) if rauth else b'\x05 \x01 \x00 ' ) + b'\x05 \x01 \x00 \x03 ' + packstr (host_name .encode ()) + port .to_bytes (2 , 'big' ))
134134 await reader_remote .read_until (b'\x00 \x05 \x00 \x00 ' )
135135 header = (await reader_remote .read_n (1 ))[0 ]
136136 await reader_remote .read_n (6 if header == 1 else (18 if header == 4 else (await reader_remote .read_n (1 ))[0 ]+ 2 ))
137+ writer_remote .write (initbuf )
137138
138139class HTTP (BaseProtocol ):
139140 name = 'http'
@@ -174,8 +175,9 @@ async def parse(self, header, reader, writer, auth, authtable, httpget, **kw):
174175 newpath = url ._replace (netloc = '' , scheme = '' ).geturl ()
175176 return host_name , port , f'{ method } { newpath } { ver } \r \n { lines } \r \n \r \n ' .encode ()
176177 async def connect (self , reader_remote , writer_remote , rauth , host_name , port , initbuf , ** kw ):
177- writer_remote .write (f'CONNECT { host_name } :{ port } HTTP/1.1' .encode () + (b'\r \n Proxy-Authorization: Basic ' + base64 .b64encode (rauth ) if rauth else b'' ) + b'\r \n \r \n ' + initbuf )
178+ writer_remote .write (f'CONNECT { host_name } :{ port } HTTP/1.1' .encode () + (b'\r \n Proxy-Authorization: Basic ' + base64 .b64encode (rauth ) if rauth else b'' ) + b'\r \n \r \n ' )
178179 await reader_remote .read_until (b'\r \n \r \n ' )
180+ writer_remote .write (initbuf )
179181 async def channel (self , reader , writer , stat_bytes , * args ):
180182 try :
181183 while True :
0 commit comments