class Puma::Client

def read_chunked_body

def read_chunked_body
  while true
    begin
      chunk = @io.read_nonblock(CHUNK_SIZE, @read_buffer)
    rescue IO::WaitReadable
      return false
    rescue SystemCallError, IOError
      raise ConnectionError, "Connection error detected during read"
    end
    # No chunk means a closed socket
    unless chunk
      @body.close
      @buffer = nil
      set_ready
      raise EOFError
    end
    if decode_chunk(chunk)
      @env[CONTENT_LENGTH] = @chunked_content_length.to_s
      return true
    end
  end
end