Method: Net::DNS::Names#dn_comp
- Defined in:
- lib/net/dns/names.rb
#dn_comp(name, offset, compnames) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/net/dns/names.rb', line 89 def dn_comp(name, offset, compnames) names = {} ptr = 0 str = "" arr = names_array(name) arr.each do |entry| if compnames.key?(entry) ptr = 0xC000 | compnames[entry] str += [ptr].pack("n") offset += INT16SZ break else len = entry.unpack1("C") elem = entry[1..len] str += [len, elem].pack("Ca*") names.update(entry.to_s => offset) offset += len end end [str, offset, names] end |