| 26 | ) |
| 27 | |
| 28 | func decompressNoContextTakeover(r io.Reader) io.ReadCloser { |
| 29 | const tail = |
| 30 | // Add four bytes as specified in RFC |
| 31 | "\x00\x00\xff\xff" + |
| 32 | // Add final block to squelch unexpected EOF error from flate reader. |
| 33 | "\x01\x00\x00\xff\xff" |
| 34 | |
| 35 | fr, _ := flateReaderPool.Get().(io.ReadCloser) |
| 36 | fr.(flate.Resetter).Reset(io.MultiReader(r, strings.NewReader(tail)), nil) |
| 37 | return &flateReadWrapper{fr} |
| 38 | } |
| 39 | |
| 40 | func isValidCompressionLevel(level int) bool { |
| 41 | return minCompressionLevel <= level && level <= maxCompressionLevel |