class Net::DNS::Header::RCode
DNS Header RCode handling class
It should be used internally by Net::DNS::Header class. However, it's still possible to instantiate it directly.
require 'net/dns/header' rcode = Net::DNS::Header::RCode.new 0
The RCode class represents the RCode field in the Header portion of a DNS packet. This field (called Response Code) is used to get informations about the status of a DNS operation, such as a query or an update. These are the values in the original Mockapetris's standard (RFC1035):
-
0 No error condition
-
1 Format error - The name server was unable to interpret
the query.
-
2 Server failure - The name server was
unable to process this query due to a problem with the name server.
-
3 Name Error - Meaningful only for
responses from an authoritative name server, this code means that the domain name referenced in the query does not exist.
-
4 Not Implemented - The name server does
not support the requested kind of query.
-
5 Refused - The name server refuses to
perform the specified operation for policy reasons. For example, a name server may not wish to provide the information to the particular requester, or a name server may not wish to perform a particular operation (e.g., zone transfer) for particular data.
-
6-15 Reserved for future use.
In the next DNS RFCs, codes 6-15 has been assigned to the following errors:
-
6 YXDomain
-
7 YXRRSet
-
8 NXRRSet
-
9 NotAuth
-
10 NotZone
More RCodes has to come for TSIGs and other operations.
Constants
- FORMAT
Constant for
rcode
Response Code Format Error- NAME
Constant for
rcode
Response Code Name Error- NOERROR
Constant for
rcode
Response Code No Error- NOTIMPLEMENTED
Constant for
rcode
Response Code Not Implemented Error- RCodeErrorString
- RCodeType
- REFUSED
Constant for
rcode
Response Code Refused Error- SERVER
Constant for
rcode
Response Code Server Format Error
Attributes
Public Class Methods
# File lib/net/dns/header.rb, line 139 def initialize(code) if (0..10).include? code @code = code @type = RCodeType[code] @explanation = RCodeErrorString[code] else raise ArgumentError, "RCode `#{code}' out of range" end end
Public Instance Methods
# File lib/net/dns/header.rb, line 149 def to_s @code.to_s end