diff options
author | Benoit Foucher <benoit@zeroc.com> | 2016-11-28 14:32:20 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2016-11-28 14:32:20 +0100 |
commit | 50013d212e3c3fd0aa5acaaa1ed1c504ca0ef290 (patch) | |
tree | f9700ab294dae16c4628a6ad3e29ba8d7f83c14b /scripts/NetworkProxy.py | |
parent | Remove CSharp mono pkgconfig files (diff) | |
download | ice-50013d212e3c3fd0aa5acaaa1ed1c504ca0ef290.tar.bz2 ice-50013d212e3c3fd0aa5acaaa1ed1c504ca0ef290.tar.xz ice-50013d212e3c3fd0aa5acaaa1ed1c504ca0ef290.zip |
Fixed staticFiltering test failure, network proxy test hang, added support for builddir variable
Diffstat (limited to 'scripts/NetworkProxy.py')
-rw-r--r-- | scripts/NetworkProxy.py | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/scripts/NetworkProxy.py b/scripts/NetworkProxy.py index d161f775f9e..e33bc19414a 100644 --- a/scripts/NetworkProxy.py +++ b/scripts/NetworkProxy.py @@ -79,26 +79,34 @@ class BaseProxy(threading.Thread): self.closed = False self.cond = threading.Condition() self.socket = None + self.failed = None self.connections = [] atexit.register(self.terminate) self.setDaemon(True) self.start() with self.cond: - while not self.socket: - self.cond.wait() + while not self.socket and not self.failed: + self.cond.wait(60) + if self.failed: + raise self.failed def createConnection(self): return None def run(self): - with self.cond: - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - if hasattr(socket, "SO_REUSEPORT"): - self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - self.socket.bind(("127.0.0.1", self.port)) - self.socket.listen(1) + try: + with self.cond: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + if hasattr(socket, "SO_REUSEPORT"): + self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) + self.socket.bind(("127.0.0.1", self.port)) + self.socket.listen(1) + self.cond.notify() + except Exception as ex: + self.failed = ex self.cond.notify() + return try: while not self.closed: |