class DNSMessage::Question
Parse and build DNS questions
Attributes
add_to_hash[R]
klass[RW]
name[RW]
size[R]
type[RW]
Public Class Methods
new(name: nil, type: nil, klass: Class::IN)
click to toggle source
# File lib/dnsmessage/question.rb, line 9 def initialize(name: nil, type: nil, klass: Class::IN) @name = name @type = type @klass = klass end
parse(question, ptr, idx)
click to toggle source
# File lib/dnsmessage/question.rb, line 15 def self.parse(question, ptr, idx) new.tap do |q| q.parse(question, ptr, idx) end end
Public Instance Methods
build(ptr, idx)
click to toggle source
# File lib/dnsmessage/question.rb, line 30 def build(ptr, idx) name_bytes, add = Name.build(@name, ptr) ptr.add(@name, idx) if add name_bytes + [type, klass].pack("n2") end
parse(question, ptr, idx)
click to toggle source
# File lib/dnsmessage/question.rb, line 21 def parse(question, ptr, idx) @name, @size, add = Name.parse(question[idx..], ptr) ptr.add(idx, @name) if add # take last four bytes @type, @klass = question[(idx + @size)..].unpack("n2") @size += 4 end