diff options
Diffstat (limited to 'libpathod/rparse.py')
-rw-r--r-- | libpathod/rparse.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libpathod/rparse.py b/libpathod/rparse.py index 677c6b54..47084520 100644 --- a/libpathod/rparse.py +++ b/libpathod/rparse.py @@ -390,6 +390,9 @@ class Response: return ret def write_values(self, fp, vals, actions, sofar=0, skip=0, blocksize=BLOCKSIZE): + """ + Return True if connection should disconnect. + """ while vals: part = vals.pop() for i in range(skip, len(part), blocksize): @@ -401,18 +404,15 @@ class Response: if p[1] == "pause": fp.write(d[:offset]) time.sleep(p[2]) - self.write_values( + return self.write_values( fp, vals, actions, sofar=sofar+offset, skip=i+offset, blocksize=blocksize ) - return elif p[1] == "disconnect": fp.write(d[:offset]) - fp.finish() - fp.connection.stream.close() - return + return True fp.write(d) sofar += len(d) skip = 0 @@ -447,9 +447,10 @@ class Response: vals.reverse() actions = self.ready_actions(self.length(), self.actions) actions.reverse() - self.write_values(fp, vals, actions[:]) + disconnect = self.write_values(fp, vals, actions[:]) duration = time.time() - started return dict( + disconnect = disconnect, started = started, duration = duration, actions = actions, |