Skip to content

Commit ef163aa

Browse files
committed
fix
1 parent ea9b4fd commit ef163aa

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

‎pproxy/server.py‎

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,12 @@
66
UDP_LIMIT=30
77
DUMMY=lambdas: s
88

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()
2515

2616
classAuthTable(object):
2717
_auth={}
@@ -68,7 +58,7 @@ def schedule(rserver, salgorithm, host_name, port):
6858

6959
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):
7060
try:
71-
reader, writer=proto.sslwrap(ProxyReader(reader), writer, sslserver, True, None, verbose)
61+
reader, writer=proto.sslwrap(reader, writer, sslserver, True, None, verbose)
7262
ifunix:
7363
remote_ip, server_ip, remote_text='local', None, 'unix_local'
7464
else:
@@ -231,7 +221,7 @@ async def open_connection(self, host, port, local_addr, lbind, timeout=SOCKET_TI
231221
reader, writer=awaitasyncio.wait_for(wait, timeout=timeout)
232222
exceptExceptionasex:
233223
raise
234-
returnProxyReader(reader), writer
224+
returnreader, writer
235225
asyncdefprepare_connection(self, reader_remote, writer_remote, host, port):
236226
returnreader_remote, writer_remote
237227
asyncdeftcp_connect(self, host, port, local_addr=None, lbind=None):
@@ -532,7 +522,7 @@ async def handler(reader, writer, **kw):
532522
auth=b'\x01'+auth
533523
ifauth:
534524
try:
535-
assertauth== (awaitasyncio.wait_for(reader.readexactly(len(auth)), timeout=SOCKET_TIMEOUT))
525+
assertauth== (awaitreader.read_n(len(auth)))
536526
exceptException:
537527
return
538528
awaitself.conn.put((reader, writer))

0 commit comments

Comments
(0)