Method: Net::DNS::Names#dn_comp

Defined in:
lib/net/dns/names.rb

#dn_comp(name, offset, compnames) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/net/dns/names.rb', line 86

def dn_comp(name,offset,compnames)
  names = {}
  ptr = 0
  str = ""
  arr = names_array(name)
  arr.each do |entry|
    if compnames.has_key?(entry)
      ptr = 0xC000 | compnames[entry]
      str += [ptr].pack("n")
      offset += INT16SZ
      break
    else
      len = entry.unpack("C")[0]
      elem = entry[1..len]
      str += [len,elem].pack("Ca*")
      names.update({"#{entry}" => offset})
      offset += len
    end
  end
  return str,offset,names
end