# File lib/dnstraverse/message_utility.rb, line 147
    def msg_follow_cnames(msg, args)
      name = args[:qname]
      type = args[:qtype]
      bw = args[:bailiwick].to_s
      bwend = ".#{args[:bailiwick]}"
      while true do
        return name if msg_answers?(msg, :qname => name, :qtype => type)
        if not ans = msg_answers?(msg, :qname => name, :qtype => 'CNAME') then
          return name
        end
        target = ans[0].domainname.to_s
        Log.debug { "CNAME encountered from #{name} to #{target}"}
        if bw and (target.casecmp(bw) != 0 and name !~ /#{bwend}$/i) then
          # target outside of bailiwick, don't follow any more CNAMEs.
          return target
        end
        name = target
      end
    end