Repository navigation
Conversation
…p decode When colly manually gzip-decodes a response body, it left the original Content-Encoding: gzip and the compressed Content-Length on the stored Response, so the headers described a body that no longer matched. Delete Content-Encoding and Content-Length after a successful manual gzip decode, mirroring what net/http does when it transparently decompresses a response.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #918
Problem
When colly manually gzip-decodes a response body, it left the original
Content-Encoding: gzipand the compressedContent-Lengthon the storedResponse. The headers then lied about the now-plaintext body, andContent-Lengthno longer matchedlen(Response.Body). Go's transport strips both headers when it transparently decompresses, but colly's manual path did not.Fix
After a successful manual gzip decode, delete
Content-EncodingandContent-Lengthfrom the stored response headers, mirroring net/http.Tests
Added
TestManualGzipDecodeClearsStaleHeaders: an httptest server returns a gzip body withContent-Encoding: gzipand a compressedContent-Length; the request setsAccept-Encoding: gzipto force the manual decode path. The test asserts the body is decompressed and that bothContent-EncodingandContent-Lengthare absent on the collyResponse. Verified it fails on master and passes with the fix; full suite is green.