Don't stay in loop if socket is closed

This commit is contained in:
Oleksii Shevchuk 2016-08-28 14:20:30 +03:00
parent 6f780ddf97
commit c91ac2a120
1 changed files with 4 additions and 4 deletions

View File

@ -1,4 +1,4 @@
# -*- coding: UTF8 -*-
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Nicolas VERDIER (contact@n1nj4.eu)
# Pupy is under the BSD 3-Clause license. see the LICENSE file at the root of the project for the detailed licence terms
""" abstraction layer over rpyc streams to handle different transports and integrate obfsproxy pluggable transports """
@ -92,7 +92,9 @@ class PupySocketStream(SocketStream):
if len(self.upstream)>=count:
return self.upstream.read(count)
while len(self.upstream)<count:
self.sock_poll(0.1)
if not self.sock_poll(0.1) and self.closed:
return None
#self._read()
#it seems we can actively wait here with only perf enhancement
@ -208,5 +210,3 @@ class PupyUDPSocketStream(object):
#The write will be done by the _upstream_recv callback on the downstream buffer
except Exception as e:
logging.debug(traceback.format_exc())