Sha256: 32c3e9ad543f8db8cb0df9db87cd8e52f8e839f0158dba98b628cd920415fdab

Contents?: true

Size: 1.59 KB

Versions: 10

Compression:

Stored size: 1.59 KB

Contents

module Net # :nodoc:
  module DNS
    class RR

      #
      # = Name Server Record (NS)
      #
      # Class for DNS NS resource records.
      #
      class NS < RR

        # Gets the name server value.
        #
        # Returns a String.
        def nsdname
          @nsdname
        end

        # Gets the standardized value for this record,
        # represented by the value of <tt>nsdname</tt>.
        #
        # Returns a String.
        def value
          nsdname.to_s
        end


        private

          def subclass_new_from_hash(options)
            if options.has_key?(:nsdname)
              @nsdname = check_name(options[:nsdname])
            else
              raise ArgumentError, ":nsdname field is mandatory"
            end
          end

          def subclass_new_from_string(str)
            @nsdname = check_name(str)
          end

          def subclass_new_from_binary(data, offset)
            @nsdname, offset = dn_expand(data, offset)
            offset
          end


          def set_type
            @type = Net::DNS::RR::Types.new("NS")
          end

          def get_inspect
            value
          end


          def check_name(input)
            name = input.to_s
            unless name =~ /(\w\.?)+\s*$/ and name =~ /[a-zA-Z]/
              raise ArgumentError, "Invalid Name Server `#{name}'"
            end
            name
          end

          def build_pack
            @nsdname_pack = pack_name(@nsdname)
            @rdlength = @nsdname_pack.size
          end

          def get_data
            @nsdname_pack
          end

      end

    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
net-dns2-0.8.7 lib/net/dns/rr/ns.rb
net-dns2-0.8.6 lib/net/dns/rr/ns.rb
net-dns2-0.8.5 lib/net/dns/rr/ns.rb
net-dns2-0.8.4 lib/net/dns/rr/ns.rb
net-dns2-0.8.3 lib/net/dns/rr/ns.rb
net-dns2-0.8.2 lib/net/dns/rr/ns.rb
net-dns2-0.8.1 lib/net/dns/rr/ns.rb
net-dns-0.8.0 lib/net/dns/rr/ns.rb
net-dns-0.7.1 lib/net/dns/rr/ns.rb
net-dns-0.7.0 lib/net/dns/rr/ns.rb