Sha256: c5839a30eef13f99be0e3405e84a80e790f110b4f1c858040fd7d48783d4778f

Contents?: true

Size: 821 Bytes

Versions: 6

Compression:

Stored size: 821 Bytes

Contents

# frozen_string_literal: true

module DnsMock
  module Response
    class Message
      attr_reader :dns_message

      def initialize(
        packet,
        records,
        exception_if_not_found,
        dns_answer = DnsMock::Response::Answer,
        dns_message = ::Resolv::DNS::Message
      )
        @dns_answer = dns_answer.new(records, exception_if_not_found)
        @dns_message = dns_message.decode(packet)
      end

      def as_binary_string
        @as_binary_string ||= begin
          compose_answer
          dns_message.encode
        end
      end

      private

      attr_reader :dns_answer

      def compose_answer
        dns_message.each_question do |hostname, record_type|
          dns_message.answer.push(*dns_answer.build(hostname, record_type))
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dns_mock-1.7.6 lib/dns_mock/response/message.rb
dns_mock-1.7.5 lib/dns_mock/response/message.rb
dns_mock-1.7.4 lib/dns_mock/response/message.rb
dns_mock-1.7.3 lib/dns_mock/response/message.rb
dns_mock-1.7.1 lib/dns_mock/response/message.rb
dns_mock-1.7.0 lib/dns_mock/response/message.rb