MCPcopy
hub / github.com/nats-io/nats.go / decompress

Method decompress

ws.go:164–182  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

162}
163
164func (d *wsDecompressor) decompress() ([]byte, error) {
165 d.off = 0
166 // As per https://tools.ietf.org/html/rfc7692#section-7.2.2
167 // add 0x00, 0x00, 0xff, 0xff and then a final block so that flate reader
168 // does not report unexpected EOF.
169 d.bufs = append(d.bufs, compressFinalBlock)
170 // Create or reset the decompressor with his object (wsDecompressor)
171 // that provides Read() and ReadByte() APIs that will consume from
172 // the compressed buffers (d.bufs).
173 if d.flate == nil {
174 d.flate = flate.NewReader(d)
175 } else {
176 d.flate.(flate.Resetter).Reset(d, nil)
177 }
178 b, err := io.ReadAll(d.flate)
179 // Now reset the compressed buffers list
180 d.bufs = nil
181 return b, err
182}
183
184func wsNewReader(r io.Reader) *websocketReader {
185 return &websocketReader{r: r, ff: true}

Callers 1

ReadMethod · 0.80

Calls 1

ResetMethod · 0.65

Tested by

no test coverage detected