class Resolv::DNS::Message::MessageDecoder
Public Instance Methods
get_labels(limit=nil)
click to toggle source
# File lib/spf/ext/resolv.rb, line 77 def get_labels(limit=nil) limit = @index if !limit || @index < limit d = [] while true case @data[@index] && @data[@index].ord # PATCH when nil # PATCH raise DecodeError.new("truncated or malformed packet") # PATCH when 0 @index += 1 return d when 192..255 idx = self.get_unpack('n')[0] & 0x3fff if limit <= idx raise DecodeError.new("non-backward name pointer") end save_index = @index @index = idx d += self.get_labels(limit) @index = save_index return d else d << self.get_label end end return d end