diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2022-01-17 16:19:29 -0700 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2022-01-17 16:25:24 -0700 |
commit | 8423ffac8f2f32ed501d225f9f4f6893511212a7 (patch) | |
tree | 3eb5402ae2ee201e5ef838160579929fb21ab86b | |
parent | d1b23a1900d5ccc2aae56c4bb475f9640cb9a455 (diff) | |
download | waitress-8423ffac8f2f32ed501d225f9f4f6893511212a7.tar.gz |
Add support for seekable wsgi.file_wrapper
-rw-r--r-- | src/waitress/buffers.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/waitress/buffers.py b/src/waitress/buffers.py index 386eb40..8091ff0 100644 --- a/src/waitress/buffers.py +++ b/src/waitress/buffers.py @@ -145,6 +145,16 @@ class ReadOnlyFileBasedBuffer(FileBasedBuffer): self.file = file self.block_size = block_size # for __iter__ + # This is for the benefit of anyone that is attempting to wrap this + # wsgi.file_wrapper in a WSGI middleware and wants to seek, this is + # useful for instance for support Range requests + if _is_seekable(self.file): + if hasattr(self.file, "seekable"): + self.seekable = self.file.seekable + + self.seek = self.file.seek + self.tell = self.file.tell + def prepare(self, size=None): if _is_seekable(self.file): start_pos = self.file.tell() |