class TP2::HTTP1Connection

def get_body_chunk(req, _buffered_only = false)

def get_body_chunk(req, _buffered_only = false)
  headers = req.headers
  content_length = headers['content-length']
  if content_length
    return nil if headers[':body-done-reading']
    chunk = read(content_length.to_i)
    headers[':body-done-reading'] = true
    return chunk
  end
  chunked_encoding = headers['transfer-encoding']&.downcase == 'chunked'
  return read_chunk(headers, nil) if chunked_encoding
  return nil if headers[':body-done-reading']
  # if content-length is not specified, we read to EOF, up to max 1MB size
  chunk = read(1 << 20, nil, false)
  headers[':body-done-reading'] = true
  chunk
end