diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index fcb254c0b..ca21a4234 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -120,7 +120,8 @@ class WebsocketFrameReader(threading.Thread): if self.ws_read_limit == 0: return r, _, x = select.select([self.rfile], [], [], 0.05) - if not r and time.time() - starttime > self.timeout: + delta = time.time() - starttime + if not r and self.timeout and delta > self.timeout: return try: self.terminate.get_nowait() @@ -233,8 +234,6 @@ class Pathoc(tcp.TCPClient): an HTTP CONNECT request. """ tcp.TCPClient.connect(self) - if self.timeout: - self.settimeout(self.timeout) if connect_to: self.http_connect(connect_to) self.sslinfo = None @@ -254,6 +253,8 @@ class Pathoc(tcp.TCPClient): ) if showssl: print >> fp, str(self.sslinfo) + if self.timeout: + self.settimeout(self.timeout) def _resp_summary(self, resp): return "<< %s %s: %s bytes" % ( diff --git a/test/test_pathod.py b/test/test_pathod.py index 345734bf7..f85ef38d0 100644 --- a/test/test_pathod.py +++ b/test/test_pathod.py @@ -213,10 +213,9 @@ class CommonTests(tutils.DaemonTests): def test_websocket_frame(self): r, _ = self.pathoc( - ["ws:/p/", "wf:f'wf:b\"test\"'"], + ["ws:/p/", "wf:f'wf:b\"test\"':pa,1"], ws_read_limit=1 ) - print >> sys.stderr, r assert r[1].payload == "test" def test_websocket_frame_reflect_error(self): diff --git a/test/tutils.py b/test/tutils.py index 5988e846c..c56c60d43 100644 --- a/test/tutils.py +++ b/test/tutils.py @@ -85,11 +85,10 @@ class DaemonTests(object): ("localhost", self.d.port), ssl=ssl, ws_read_limit=ws_read_limit, + timeout = timeout, fp = logfp ) c.connect(connect_to) - if timeout: - c.settimeout(timeout) ret = [] for i in specs: resp = c.request(i)