()
| 244 | } |
| 245 | |
| 246 | func (bw *bodyWrapper) httpReadFull() error { |
| 247 | b, err := io.ReadAll(bw.httpReader) |
| 248 | |
| 249 | // Switch to reading from memory. |
| 250 | bw.isFullyRead = true |
| 251 | bw.memBytes = append(bw.memBytes, b...) |
| 252 | bw.memReader = bytes.NewReader(bw.memBytes[len(bw.memBytes)-len(b):]) |
| 253 | |
| 254 | if err != nil { |
| 255 | bw.readErr = err |
| 256 | } |
| 257 | |
| 258 | if closeErr := bw.closeAndCancel(); closeErr != nil && err == nil { |
| 259 | err = closeErr |
| 260 | } |
| 261 | |
| 262 | return err |
| 263 | } |
| 264 | |
| 265 | func (bw *bodyWrapper) closeAndCancel() error { |
| 266 | if bw.httpReader == nil && bw.httpCancelFunc == nil { |
no test coverage detected