diff options
Diffstat (limited to 'wsgitools/middlewares.py')
-rw-r--r-- | wsgitools/middlewares.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/wsgitools/middlewares.py b/wsgitools/middlewares.py index 97b8092..1619e0b 100644 --- a/wsgitools/middlewares.py +++ b/wsgitools/middlewares.py @@ -166,7 +166,7 @@ class ContentLengthMiddleware(object): gotdata = True assert bool(todo) status, headers = todo[0] - if not [k for k, _ in headers if k.lower() == "content-length"]: + if all(k.lower() != "content-length" for k, _ in headers): length = sum(map(len, ret)) headers.append(("Content-Length", str(length))) start_response(status, headers) @@ -188,17 +188,18 @@ class ContentLengthMiddleware(object): data.append(first) length = len(first) - while (not stopped) and length < self.maxstore: - try: - data.append(next(ret)) - length += len(data[-1]) - except StopIteration: - stopped = True + if all(k.lower() != "content-length" for k, _ in headers): + while (not stopped) and length < self.maxstore: + try: + data.append(next(ret)) + length += len(data[-1]) + except StopIteration: + stopped = True - if stopped: - headers.append(("Content-length", str(length))) - start_response(status, headers) - return data + if stopped: + headers.append(("Content-length", str(length))) + start_response(status, headers) + return data start_response(status, headers) |