Fix body reporting compressed length with auto decompression #267
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When automatic decompression is enabled and a server returns a
Content-Length
response header for compressed content,Body::len
was naively returning the unmodified value ofContent-Length
as the body length. This is incorrect because theContent-Length
in this situation indicates the compressed size of the body, not the uncompressed size.Since
Body::len
is supposed to be reporting the size of the body that it is returning if known, returning the uncompressed size is confusing and buggy, and can (and does) cause issues for downstream users.This fixes the issue by simply returning
None
as the body length whenever we are decompressing the response body on the user's behalf, since it is impossible for us to know the uncompressed size ahead of time.Fixes #265.