# frozen_string_literal: true # This file is part of PacketGen # See https://github.com/sdaubert/packetgen for more informations # Copyright (C) 2016 Sylvain Daubert # This program is published under MIT license. module PacketGen module Header class DNS # Define a DNS Question Section # @author Sylvain Daubert class QDSection < RRSection # @!method push(q) # Add a question to this section without incrementing associated counter # @param [Question,Hash] q # @return [QDSection] self # @!method <<(q) # Add a question to this section. Increment associated counter # @param [Question,Hash] q # @return [QDSection] self # @!method delete(q) # Delete a question # @param [Question] q # @return [Question] # Read Question section from a string # @param [String] str binary string # @return [QDSection] self def read(str) clear return self if str.nil? PacketGen.force_binary str while !str.empty? && (self.size < @counter.to_i) question = Question.new(@dns).read(str) str.slice!(0, question.sz) self.push question end self end end end end end