# File lib/dnstraverse/referral.rb, line 300
    def process(args)
      raise "This Referral object has already been processed" if processed?
      raise "You need to resolve this Referral object" unless resolved?
      if (server) then
        process_normal(args)
      else
        # special case - no server means start from the top with the roots
        process_add_roots(args)
      end
      # return a set of Referral objects that need to be processed
      # XXX flatten really necessary?
      @processed = true
      return @children.values.flatten.select {|x| x.is_a? Referral}
    end