|
6 | 6 | UDP_LIMIT=30 |
7 | 7 | DUMMY=lambdas: s |
8 | 8 |
|
9 | | -classProxyReader(asyncio.StreamReader): |
10 | | -def__init__(self, o=None): |
11 | | -ifo: |
12 | | -fornindir(o): |
13 | | -ifnotn.startswith('__'): |
14 | | -setattr(self, n, getattr(o, n)) |
15 | | -else: |
16 | | -super(self).__init__() |
17 | | -defread_w(self, n): |
18 | | -returnasyncio.wait_for(self.read(n), timeout=SOCKET_TIMEOUT) |
19 | | -defread_n(self, n): |
20 | | -returnasyncio.wait_for(self.readexactly(n), timeout=SOCKET_TIMEOUT) |
21 | | -defread_until(self, s): |
22 | | -returnasyncio.wait_for(self.readuntil(s), timeout=SOCKET_TIMEOUT) |
23 | | -defrollback(self, s): |
24 | | -self._buffer.__setitem__(slice(0, 0), s) |
| 9 | +defpatch_StreamReader(c=asyncio.StreamReader): |
| 10 | +c.read_w=lambdaself, n: asyncio.wait_for(self.read(n), timeout=SOCKET_TIMEOUT) |
| 11 | +c.read_n=lambdaself, n: asyncio.wait_for(self.readexactly(n), timeout=SOCKET_TIMEOUT) |
| 12 | +c.read_until=lambdaself, s: asyncio.wait_for(self.readuntil(s), timeout=SOCKET_TIMEOUT) |
| 13 | +c.rollback=lambdaself, s: self._buffer.__setitem__(slice(0, 0), s) |
| 14 | +patch_StreamReader() |
25 | 15 |
|
26 | 16 | classAuthTable(object): |
27 | 17 | _auth={} |
@@ -68,7 +58,7 @@ def schedule(rserver, salgorithm, host_name, port): |
68 | 58 |
|
69 | 59 | asyncdefstream_handler(reader, writer, unix, lbind, protos, rserver, cipher, sslserver, debug=0, authtime=86400*30, block=None, salgorithm='fa', verbose=DUMMY, modstat=lambdau,r,h:lambdai:DUMMY, **kwargs): |
70 | 60 | try: |
71 | | -reader, writer=proto.sslwrap(ProxyReader(reader), writer, sslserver, True, None, verbose) |
| 61 | +reader, writer=proto.sslwrap(reader, writer, sslserver, True, None, verbose) |
72 | 62 | ifunix: |
73 | 63 | remote_ip, server_ip, remote_text='local', None, 'unix_local' |
74 | 64 | else: |
@@ -231,7 +221,7 @@ async def open_connection(self, host, port, local_addr, lbind, timeout=SOCKET_TI |
231 | 221 | reader, writer=awaitasyncio.wait_for(wait, timeout=timeout) |
232 | 222 | exceptExceptionasex: |
233 | 223 | raise |
234 | | -returnProxyReader(reader), writer |
| 224 | +returnreader, writer |
235 | 225 | asyncdefprepare_connection(self, reader_remote, writer_remote, host, port): |
236 | 226 | returnreader_remote, writer_remote |
237 | 227 | asyncdeftcp_connect(self, host, port, local_addr=None, lbind=None): |
@@ -532,7 +522,7 @@ async def handler(reader, writer, **kw): |
532 | 522 | auth=b'\x01'+auth |
533 | 523 | ifauth: |
534 | 524 | try: |
535 | | -assertauth== (awaitasyncio.wait_for(reader.readexactly(len(auth)), timeout=SOCKET_TIMEOUT)) |
| 525 | +assertauth== (awaitreader.read_n(len(auth))) |
536 | 526 | exceptException: |
537 | 527 | return |
538 | 528 | awaitself.conn.put((reader, writer)) |
|
0 commit comments