Class Dnsruby::Question
In: lib/Dnsruby/message.rb
Parent: Object
ResolvError EncodeError OtherResolvError ServFail FormErr DecodeError NXRRSet YXDomain NotImp NXDomain VerifyError NotAuth YXRRSet NotZone Refused TsigError Message Update CodeMapper Types MetaTypes QTypes Nsec3HashAlgorithms Algorithms OpCode Classes ExtendedRCode RCode Modes Comparable Name RRSet Resolver SingleResolver StandardError TimeoutError ResolvTimeout DNS Dnssec Hosts SelectThread\n[lib/Dnsruby/select_thread.rb\nlib/Dnsruby/select_thread.rb.michael.rb] Recursor IPv6 IPv4 ZoneTransfer MessageDecoder MessageEncoder Question Header TheLog RR\n[lib/Dnsruby/resource/A.rb\nlib/Dnsruby/resource/AAAA.rb\nlib/Dnsruby/resource/AFSDB.rb\nlib/Dnsruby/resource/CERT.rb\nlib/Dnsruby/resource/DLV.rb\nlib/Dnsruby/resource/DNSKEY.rb\nlib/Dnsruby/resource/DS.rb\nlib/Dnsruby/resource/HINFO.rb\nlib/Dnsruby/resource/IN.rb\nlib/Dnsruby/resource/ISDN.rb\nlib/Dnsruby/resource/LOC.rb\nlib/Dnsruby/resource/MINFO.rb\nlib/Dnsruby/resource/MX.rb\nlib/Dnsruby/resource/NAPTR.rb\nlib/Dnsruby/resource/NSAP.rb\nlib/Dnsruby/resource/NSEC.rb\nlib/Dnsruby/resource/NSEC3.rb\nlib/Dnsruby/resource/NSEC3PARAM.rb\nlib/Dnsruby/resource/OPT.rb\nlib/Dnsruby/resource/PX.rb\nlib/Dnsruby/resource/RP.rb\nlib/Dnsruby/resource/RRSIG.rb\nlib/Dnsruby/resource/RT.rb\nlib/Dnsruby/resource/SOA.rb\nlib/Dnsruby/resource/SPF.rb\nlib/Dnsruby/resource/SRV.rb\nlib/Dnsruby/resource/TKEY.rb\nlib/Dnsruby/resource/TSIG.rb\nlib/Dnsruby/resource/TXT.rb\nlib/Dnsruby/resource/X25.rb\nlib/Dnsruby/resource/domain_name.rb\nlib/Dnsruby/resource/generic.rb\nlib/Dnsruby/resource/resource.rb] ValidatorThread PacketSender ResolverRuby Config KeyCache Cache SingleVerifier Resolv Iana lib/Dnsruby/DNS.rb lib/Dnsruby/dnssec.rb lib/Dnsruby/Hosts.rb lib/Dnsruby/select_thread.rb.michael.rb lib/Dnsruby/Recursor.rb lib/Dnsruby/update.rb lib/Dnsruby/ipv6.rb lib/Dnsruby/ipv4.rb lib/Dnsruby/code_mapper.rb lib/Dnsruby/zone_transfer.rb lib/Dnsruby/message.rb lib/Dnsruby/TheLog.rb lib/Dnsruby/resource/resource.rb lib/Dnsruby/validator_thread.rb lib/Dnsruby/PacketSender.rb lib/Dnsruby/Resolver.rb lib/Dnsruby/Config.rb lib/Dnsruby/key_cache.rb lib/Dnsruby/Cache.rb lib/Dnsruby/single_verifier.rb lib/Dnsruby/SingleResolver.rb lib/Dnsruby/name.rb lib/dnsruby.rb lib/Dnsruby/resource/TKEY.rb lib/Dnsruby/iana_ports.rb Dnsruby dot/m_56_0.png

A Dnsruby::Question object represents a record in the question section of a DNS packet.

RFC 1035 Section 4.1.2

Methods

new   qclass=   qname=   qtype=   to_s  

External Aliases

qname -> zname
  For Updates, the qname field is redefined to zname (RFC2136, section 2.3)
qtype -> ztype
  For Updates, the qtype field is redefined to ztype (RFC2136, section 2.3)
qclass -> zclass
  For Updates, the qclass field is redefined to zclass (RFC2136, section 2.3)
qtype -> type

Attributes

qclass  [R]  The Question class
qname  [R]  The Question name
qtype  [R]  The Question type

Public Class methods

Creates a question object from the domain, type, and class passed as arguments.

If a String is passed in, a Name, IPv4 or IPv6 object is created.

If an IPv4 or IPv6 object is used then the type is set to PTR.

[Source]

      # File lib/Dnsruby/message.rb, line 1112
1112:     def initialize(*args)
1113:       @qtype = Types::A
1114:       @qclass = Classes::IN
1115:       if (args.length > 0)
1116:         if (args.length > 1)
1117:           @qtype = Types.new(args[1])
1118:           if (args.length > 2)
1119:             @qclass = Classes.new(args[2])
1120:           end
1121:         end
1122:       else
1123:         raise ArgumentError.new("Must pass at least a name!")
1124:       end
1125:       # If the name looks like an IP address then do an appropriate
1126:       # PTR query.
1127:       @qname=args[0]
1128:       case @qname.to_s
1129:       when IPv4::Regex
1130:         @qname = IPv4.create(@qname).to_name
1131:         @qtype = Types.PTR
1132:       when IPv6::Regex
1133:         @qname = IPv6.create(@qname).to_name
1134:         @qtype = Types.PTR
1135:       when Name
1136:       when IPv6
1137:         @qtype = Types.PTR
1138:       when IPv4
1139:         @qtype = Types.PTR
1140:       else
1141:         @qname = Name.create(@qname)
1142:       end
1143:     end

Public Instance methods

[Source]

      # File lib/Dnsruby/message.rb, line 1149
1149:     def qclass=(qclass)
1150:       @qclass = Classes.new(qclass)
1151:     end

[Source]

      # File lib/Dnsruby/message.rb, line 1153
1153:     def qname=(qname)
1154:       case qname
1155:       when IPv4::Regex
1156:         @qname = IPv4.create(qname).to_name
1157:         @qtype = Types.PTR
1158:       when IPv6::Regex
1159:         @qname = IPv6.create(qname).to_name
1160:         @qtype = Types.PTR
1161:       when Name
1162:       when IPv6
1163:         @qtype = Types.PTR
1164:       when IPv4
1165:         @qtype = Types.PTR
1166:       else
1167:         @qname = Name.create(qname)
1168:       end
1169:     end

[Source]

      # File lib/Dnsruby/message.rb, line 1145
1145:     def qtype=(qtype)
1146:       @qtype = Types.new(qtype)
1147:     end

Returns a string representation of the question record.

[Source]

      # File lib/Dnsruby/message.rb, line 1172
1172:     def to_s
1173:       return "#{@qname}.\t#{@qclass.string}\t#{@qtype.string}";
1174:     end

[Validate]