method
get_labels
ruby latest stable - Class:
Resolv::DNS::Message::MessageDecoder
get_labels()public
No documentation available.
# File lib/resolv.rb, line 1630
def get_labels
prev_index = @index
save_index = nil
d = []
while true
raise DecodeError.new("limit exceeded") if @limit <= @index
case @data.getbyte(@index)
when 0
@index += 1
if save_index
@index = save_index
end
return d
when 192..255
idx = self.get_unpack('n')[0] & 0x3fff
if prev_index <= idx
raise DecodeError.new("non-backward name pointer")
end
prev_index = idx
if !save_index
save_index = @index
end
@index = idx
else
d << self.get_label
end
end
end