Sha256: 0e88139e66cd5a7d52f0238528ea66bcfecfd7b69bdd4236e7cc53e0d4ac6985

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

# This file is part of PacketGen
# See https://github.com/sdaubert/packetgen for more informations
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
# This program is published under MIT license.

# frozen_string_literal: true

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
packetgen-3.1.3 lib/packetgen/header/dns/qdsection.rb
packetgen-3.1.2 lib/packetgen/header/dns/qdsection.rb
packetgen-3.1.1 lib/packetgen/header/dns/qdsection.rb
packetgen-3.1.0 lib/packetgen/header/dns/qdsection.rb
packetgen-3.0.2 lib/packetgen/header/dns/qdsection.rb
packetgen-3.0.1 lib/packetgen/header/dns/qdsection.rb