Skip to content

Commit fca43ce

Browse files
committed
backward proxy stability
1 parent 32c6a63 commit fca43ce

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

pproxy/__doc__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__title__ = "pproxy"
2-
__version__ = "2.1.4"
2+
__version__ = "2.1.5"
33
__license__ = "MIT"
44
__description__ = "Proxy server that can tunnel among remote servers by regex rules."
55
__keywords__ = "proxy socks http shadowsocks shadowsocksr ssr redirect pf tunnel cipher ssl udp"

pproxy/server.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,15 @@ async def server_run(self, handler):
210210
try:
211211
reader, writer = await asyncio.wait_for(wait, timeout=SOCKET_TIMEOUT)
212212
self.writer = writer
213-
data = await reader.read_()
213+
try:
214+
data = await reader.read_n(1)
215+
except asyncio.TimeoutError:
216+
data = None
214217
if data:
215218
reader._buffer[0:0] = data
216219
asyncio.ensure_future(handler(reader, writer))
220+
else:
221+
writer.close()
217222
errwait = 0
218223
except Exception as ex:
219224
try:
@@ -222,7 +227,7 @@ async def server_run(self, handler):
222227
pass
223228
if not self.closed:
224229
await asyncio.sleep(errwait)
225-
errwait = errwait*1.3 + 0.1
230+
errwait = min(errwait*1.3 + 0.1, 30)
226231
def client_run(self):
227232
async def handler(reader, writer):
228233
while not self.conn.empty():

0 commit comments

Comments
 (0)