# File lib/cool.io/http_client.rb, line 394
    def process_body
      if @bytes_remaining.nil?
        on_body_data @data.read
        return false
      end

      if @bytes_remaining.zero?
        on_request_complete
        @state = :finished
        return false
      end

      if @data.size < @bytes_remaining
        @bytes_remaining -= @data.size
        on_body_data @data.read
        return false
      end

      on_body_data @data.read(@bytes_remaining)
      @bytes_remaining = 0

      if @data.empty?
        on_request_complete
        @state = :finished
      else
        on_error "garbage at end of body"
        @state = :invalid
      end

      false
    end