# File lib/dnstraverse/referral.rb, line 344
    def process_normal(args)
      Log.debug { "process " + self.to_s }
      #      if l = check_loop?(:ip => ip, :qname => @qname,
      #                         :qtype => @qtype, :qclass => @qclass) then
      #        for ip in @serverips do
      #          @responses[ip] = l
      #          done
      #          return
      #        end
      #      end
      for ip in @serverips do
        Log.debug { "Process normal #{ip}" }
        next if ip =~ /^key:/ # resolve failed on something
        m = nil
        if @refid.scan(/\./).length >= @maxdepth.to_i then
          m = RuntimeError.new "Maxdepth #{@maxdepth} exceeded"
        end
        Log.debug { "Process normal #{ip} - making response" }
        r = DNSTraverse::Response.new(:message => m, :qname => @qname,
                                      :qclass => @qclass, :qtype => @qtype,
                                      :bailiwick => @bailiwick,
                                      :infocache => @infocache, :ip => ip,
                                      :decoded_query_cache => @decoded_query_cache)
        Log.debug { "Process normal #{ip} - done making response" }
        @responses[ip] = r
        case r.status
          when :restart, :referral then
          Log.debug { "Process normal #{ip} - making referrals" }
          @children[ip] = make_referrals(:qname => r.endname,
                                         :starters => r.starters,
                                         :bailiwick => r.starters_bailiwick,
                                         :infocache => r.infocache,
                                         :parent_ip => ip)
          Log.debug { "Process normal #{ip} - done making referrals" }
          # XXX shouldn't be any children unless referrals
          #when :referral_lame then
          #@children[ip] = RuntimeError.new "Improper or lame delegation"
        end
      end
    end