Method: Dnsruby::RRSet#sort_canonical

Defined in:
lib/Dnsruby/resource/resource.rb

#sort_canonicalObject



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/Dnsruby/resource/resource.rb', line 121

def sort_canonical
  #Make a list, for all the RRs, where each RR contributes
  #the canonical RDATA encoding
  canonical_rrs = {}
  self.rrs.each do |rr|
    data = MessageEncoder.new {|msg|
      rr.encode_rdata(msg, true)
    }.to_s
    canonical_rrs[data] = rr
  end

  return_rrs = RRSet.new
  canonical_rrs.keys.sort.each { |rdata|
    return_rrs.add(canonical_rrs[rdata], false)
  }
  return return_rrs
end