|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.ivmaidns.dns.DNSRecord
public final class DNSRecord
Class for representing DNS resource record (as defined in RFC1035).
Field Summary | |
---|---|
static int |
A
NOTE: These are standard DNS resource types (qType or rType). |
static int |
AAAA
|
static int |
AFSDB
|
static int |
ANY
NOTE: This is standard DNS question "*" type/class (qType or qClass). |
static int |
ATMA
|
static int |
AXFR
|
static int |
CERT
|
static int |
CH
|
static int |
CNAME
|
static int |
DEFAULT_SOA_EXPIRE
|
static int |
DEFAULT_SOA_REFRESH
NOTE: The default values for SOA resource record rData fields (RFC1035). |
static int |
DEFAULT_SOA_RETRY
|
static int |
DEFAULT_TTL
|
static int |
DNAME
|
static int |
EID
|
protected static byte[] |
EMPTY_BYTES
NOTE: A constant initialized with an instance of empty byte array. |
static int |
GPOS
|
static int |
HINFO
|
static int |
HS
|
static int |
IN
NOTE: These are standard DNS resource classes (qClass or rClass). |
static int |
INET_ADDR_LEN
NOTE: This is the length of an IPv4 address value. |
static int |
ISDN
|
static int |
IXFR
NOTE: These are standard DNS additional question types (qType). |
static int |
KEY
|
static int |
KX
|
static int |
LOC
|
static int |
MAILA
|
static int |
MAILB
|
static int |
MB
|
static int |
MD
|
protected static java.lang.String |
META_RDATA_FIELDS
NOTE: Same as RDATA_FIELDS table but for query and meta-data records. |
static int |
MF
|
static int |
MG
|
static int |
MINFO
|
static int |
MR
|
static int |
MX
|
static int |
NAPTR
|
static int |
NIMLOC
|
static int |
NONE
NOTE: This is standard DNS record "NONE" class (rClass). |
static int |
NS
|
static int |
NSAP
|
static int |
NSAP_PTR
|
static int |
NULL
|
static int |
NXT
|
static int |
OPT
NOTE: These are DNS meta-data records types (rType). |
static int |
PTR
|
static int |
PX
|
protected short |
rClass
NOTE: rClass is an unsigned short. |
static int |
RCLASS_LENGTH
|
static int |
RCLASS_MASK
|
static java.lang.String |
RCLASS_REFER_ABBREVS
NOTE: This string represents a packed sorted reference list of abbreviations for the standard rClass values (defined in RFC1035). |
protected static java.lang.String |
RDATA_FIELDS
NOTE: This is padded string-table for codes of rData fields. |
static int |
RDATA_LEN_LENGTH
|
static int |
RDATA_LEN_MASK
|
protected static int |
RDATA_MAX_FIELDS
NOTE: This is (limit + 1) for number of recognized fields in rData. |
protected byte[] |
rDataBytes
NOTE: rDataBytes must be ! |
protected DNSName |
rName
NOTE: rName must be ! |
static int |
RP
|
static int |
RT
|
protected short |
rType
NOTE: rType is an unsigned short. |
static int |
RTYPE_LENGTH
NOTE: These are lengthes (in bytes) of rType, rClass, ttl, rDataLen. |
static int |
RTYPE_MASK
NOTE: These are integer bit masks of defined types. |
static java.lang.String |
RTYPE_REFER_ABBREVS
NOTE: This string represents a packed sorted reference list of abbreviations for the standard rType values (first defined in RFC1035). |
static int |
SIG
|
static int |
SOA
|
static int |
SOA_EMAIL_INDEX
|
static int |
SOA_EXPIRE_INDEX
|
static int |
SOA_HOST_INDEX
NOTE: These are all indices for SOA resource record rData fields (RFC1035). |
static int |
SOA_MINTTL_INDEX
|
static int |
SOA_REFRESH_INDEX
|
static int |
SOA_RETRY_INDEX
|
static int |
SOA_SERIAL_INDEX
|
static int |
SRV
|
static int |
TKEY
|
static int |
TSIG
|
protected int |
ttl
NOTE: ttl is unsigned (but should be >= 0, in fact). |
static int |
TTL_LENGTH
|
static int |
TTL_MASK
|
static int |
TXT
|
static int |
WKS
|
static java.lang.String |
WKS_PORT_ABBREVS
NOTE: This string represents a packed abbreviations list for the standard wksPort values (defined in RFC1700). |
static java.lang.String |
WKS_PORT_REFER_ABBREVS
NOTE: This string represents a packed sorted reference list of abbreviations for the standard wksPort values (defined in RFC1700). |
static java.lang.String |
WKS_PROTOCOL_ABBREVS
NOTE: This string represents a packed abbreviations list for the standard wksProtocol values (defined in RFC1700). |
static java.lang.String |
WKS_PROTOCOL_REFER_ABBREVS
NOTE: This string represents a packed sorted reference list of abbreviations for the standard wksProtocol values (defined in RFC1700). |
static int |
X25
|
Constructor Summary | |
---|---|
DNSRecord(byte[] msgBytes,
int[] ofsRef,
boolean isResource)
NOTE: Record constructor from msgBytes array (decompression supported). msgBytes must be ! |
|
DNSRecord(DNSName rName,
int rType,
int rClass)
NOTE: Question record constructor. rName must be ! |
|
DNSRecord(DNSName rName,
int rType,
int rClass,
int ttl,
byte[] rDataBytes)
NOTE: rName must be ! |
|
DNSRecord(DNSName rName,
int rType,
int rClass,
int ttl,
java.lang.Object[] rData)
NOTE: rName must be ! |
|
DNSRecord(DNSRecord record)
NOTE: record must be ! |
|
DNSRecord(DNSRecord record,
int ttl)
NOTE: Constructor for changing ttl. record must be ! |
Method Summary | |
---|---|
static java.lang.String |
addressToString(byte[] address,
int offset,
int len,
boolean lowerCase,
boolean zeroPadding,
boolean noCompactFormat,
boolean noMixedFormat)
NOTE: address must be ! |
static boolean |
canonizeRData(int rType,
byte[] rDataBytes)
NOTE: rDataBytes must be ! |
java.lang.Object |
clone()
Creates and returns a copy of this object. |
static int |
compareRData(int rType,
byte[] rDataBytesA,
byte[] rDataBytesB,
boolean decodeRData)
NOTE: rDataBytesA and rDataBytesB must be ! |
int |
compareTo(DNSRecord record,
boolean decodeRData)
NOTE: record must be ! |
static int |
compressRData(int rType,
byte[] msgBytes,
int offset,
int rDataBytesLen,
int baseNameOffset)
NOTE: If offset > baseNameOffset then compression of recognized domain names is performed if possible (using only content at baseNameOffset, which must be valid and not compressed). msgBytes array is altered. |
static java.lang.Object[] |
decodeRData(int rType,
byte[] rDataBytes)
NOTE: rDataBytes must be ! |
static byte[] |
decompressRData(int rType,
byte[] rDataBytes,
byte[] msgBytes)
NOTE: rDataBytes must be ! |
static byte[] |
encodeRData(int rType,
java.lang.Object[] rData)
NOTE: rData must be ! |
boolean |
equals(java.lang.Object obj)
NOTE: ttl is ignored. rData contents are compared in the case-insensitive manner for DNSName fields. |
boolean |
equalsExact(DNSRecord record)
NOTE: record may be == null. |
boolean |
equalsQuery(DNSRecord qdRecord)
NOTE: qdRecord may be == null. |
static java.net.InetAddress |
fromRevAddressName(DNSName ptr)
NOTE: ptr must be ! |
static byte[] |
fromRevIp6Name(DNSName ptr)
NOTE: ptr must be ! |
java.lang.Object |
getAt(int index)
NOTE: Result is (new Object[] { getRName(), new UnsignedInt(getRType()), new UnsignedInt(getRClass()), new UnsignedInt(getTTL()), new ByteVector(getRDataBytes()) })[index]. |
static java.lang.Object[] |
getFieldsAt(int field,
int rType,
DNSRecord[] records,
int offset,
int len)
NOTE: records must be ! |
int |
getLevel()
NOTE: Result >= 0. |
int |
getRClass()
NOTE: Result is an unsigned short. |
java.lang.Object[] |
getRData()
NOTE: Result ! |
byte[] |
getRDataBytes()
NOTE: Result ! |
int |
getRDataBytesLen()
NOTE: Result >= 0. |
DNSName |
getRName()
NOTE: Result ! |
int |
getRType()
NOTE: Result is an unsigned short. |
int |
getTotalLen()
NOTE: Result is the total length (in bytes) of this record. |
int |
getTTL()
NOTE: Result is unsigned. |
boolean |
greaterThan(java.lang.Object obj)
NOTE: Method for canonical ordering (according to RFC2535). |
int |
hashCode()
NOTE: ttl is omitted (as if ttl == 0). |
static int |
hashCodeRData(int rType,
byte[] rDataBytes)
NOTE: rDataBytes must be ! |
void |
integrityCheck()
NOTE: Check record and its name objects for their integrity. |
static boolean |
isIPAddress(java.lang.String str,
int beginIndex,
int endIndex)
NOTE: str must be ! |
int |
length()
NOTE: Result is the number of elements accessible through getAt(int). |
static java.lang.String |
locToString(int value,
int index)
NOTE: Converts geographic location parameter to a string (RFC1876). |
static int |
maxRDataLen(int rType)
NOTE: Result >= decodeRData(rType, rDataBytes) length. |
int |
putTo(byte[] msgBytes,
int offset,
boolean isResource,
int baseNameOffset)
NOTE: Method for putting resource record to (message) byte array. |
static java.lang.String |
quoteString(java.lang.String str)
NOTE: str must be ! |
static java.lang.String |
rClassAbbreviation(int rClass)
NOTE: Result ! |
static int |
rDataIndex(int rType,
int textualIndex)
NOTE: Result is the index for rData array corresponding to textualIndex. |
static java.lang.String |
rDataToString(int rType,
java.lang.Object rDataValue,
int index,
DNSName domain)
NOTE: rDataValue must be ! |
static java.lang.String |
rTypeAbbreviation(int rType)
NOTE: Result ! |
static java.lang.String |
rTypeMapToString(byte[] typeMap,
int offset,
int len)
NOTE: typeMap must be ! |
static java.lang.String |
timeToString(int value)
NOTE: Converts UT seconds to a string (as defined in RFC2535). |
static DNSName |
toRevAddressName(java.net.InetAddress host)
NOTE: host must be ! |
static DNSName |
toRevIp6Name(byte[] hostAAAA,
int offset,
int len)
NOTE: hostAAAA must be ! |
java.lang.String |
toString()
NOTE: No default values. |
java.lang.String |
toString(DNSName domain,
DNSRecord prevRecord,
boolean tabSeparated)
NOTE: If domain == null then current zone domain is not specified. |
static java.lang.String |
wksPortMapToString(byte[] portMap,
int offset,
int len)
NOTE: portMap must be ! |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int A
public static final int NS
public static final int MD
public static final int MF
public static final int CNAME
public static final int SOA
public static final int MB
public static final int MG
public static final int MR
public static final int NULL
public static final int WKS
public static final int PTR
public static final int HINFO
public static final int MINFO
public static final int MX
public static final int TXT
public static final int RP
public static final int AFSDB
public static final int X25
public static final int ISDN
public static final int RT
public static final int NSAP
public static final int NSAP_PTR
public static final int SIG
public static final int KEY
public static final int PX
public static final int GPOS
public static final int AAAA
public static final int LOC
public static final int NXT
public static final int EID
public static final int NIMLOC
public static final int SRV
public static final int ATMA
public static final int NAPTR
public static final int KX
public static final int CERT
public static final int DNAME
public static final int OPT
public static final int TKEY
public static final int TSIG
public static final int IXFR
public static final int AXFR
public static final int MAILB
public static final int MAILA
public static final int ANY
public static final int IN
public static final int CH
public static final int HS
public static final int NONE
public static final int SOA_HOST_INDEX
public static final int SOA_EMAIL_INDEX
public static final int SOA_SERIAL_INDEX
public static final int SOA_REFRESH_INDEX
public static final int SOA_RETRY_INDEX
public static final int SOA_EXPIRE_INDEX
public static final int SOA_MINTTL_INDEX
public static final int DEFAULT_SOA_REFRESH
public static final int DEFAULT_SOA_RETRY
public static final int DEFAULT_SOA_EXPIRE
public static final int DEFAULT_TTL
public static final int RTYPE_LENGTH
public static final int RCLASS_LENGTH
public static final int TTL_LENGTH
public static final int RDATA_LEN_LENGTH
public static final int INET_ADDR_LEN
public static final int RTYPE_MASK
public static final int RCLASS_MASK
public static final int TTL_MASK
public static final int RDATA_LEN_MASK
public static final java.lang.String RCLASS_REFER_ABBREVS
public static final java.lang.String RTYPE_REFER_ABBREVS
public static final java.lang.String WKS_PROTOCOL_ABBREVS
public static final java.lang.String WKS_PROTOCOL_REFER_ABBREVS
public static final java.lang.String WKS_PORT_ABBREVS
public static final java.lang.String WKS_PORT_REFER_ABBREVS
protected static final int RDATA_MAX_FIELDS
protected static final java.lang.String RDATA_FIELDS
protected static final java.lang.String META_RDATA_FIELDS
protected static final byte[] EMPTY_BYTES
protected final DNSName rName
protected final short rType
protected final short rClass
protected final int ttl
protected final byte[] rDataBytes
Constructor Detail |
---|
public DNSRecord(DNSName rName, int rType, int rClass) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public DNSRecord(DNSName rName, int rType, int rClass, int ttl, java.lang.Object[] rData) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public DNSRecord(DNSName rName, int rType, int rClass, int ttl, byte[] rDataBytes) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public DNSRecord(DNSRecord record) throws java.lang.NullPointerException
java.lang.NullPointerException
public DNSRecord(DNSRecord record, int ttl) throws java.lang.NullPointerException
java.lang.NullPointerException
public DNSRecord(byte[] msgBytes, int[] ofsRef, boolean isResource) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
java.lang.IllegalArgumentException
Method Detail |
---|
public int putTo(byte[] msgBytes, int offset, boolean isResource, int baseNameOffset) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public int getTotalLen()
public final DNSName getRName()
public int getLevel()
public final int getRType()
public final int getRClass()
public final int getTTL()
public final java.lang.Object[] getRData()
public final byte[] getRDataBytes()
public final int getRDataBytesLen()
public int length()
length
in interface Indexable
Indexable.getAt(int)
public java.lang.Object getAt(int index) throws java.lang.ArrayIndexOutOfBoundsException
getAt
in interface Indexable
index
- the index (must be in the range) at which to return an element.
null
) at index.
java.lang.ArrayIndexOutOfBoundsException
- if index is negative or is not less than
length()
.Indexable.length()
public static final byte[] encodeRData(int rType, java.lang.Object[] rData) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public static final java.lang.Object[] decodeRData(int rType, byte[] rDataBytes) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final byte[] decompressRData(int rType, byte[] rDataBytes, byte[] msgBytes) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final int compressRData(int rType, byte[] msgBytes, int offset, int rDataBytesLen, int baseNameOffset) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public static final boolean canonizeRData(int rType, byte[] rDataBytes) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final int hashCodeRData(int rType, byte[] rDataBytes) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final int compareRData(int rType, byte[] rDataBytesA, byte[] rDataBytesB, boolean decodeRData) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final int maxRDataLen(int rType)
public static final boolean isIPAddress(java.lang.String str, int beginIndex, int endIndex) throws java.lang.NullPointerException, java.lang.StringIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.StringIndexOutOfBoundsException
public static final DNSName toRevAddressName(java.net.InetAddress host) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final java.net.InetAddress fromRevAddressName(DNSName ptr) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public static final DNSName toRevIp6Name(byte[] hostAAAA, int offset, int len) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public static final byte[] fromRevIp6Name(DNSName ptr) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
java.lang.NullPointerException
java.lang.IllegalArgumentException
public static final java.lang.String rClassAbbreviation(int rClass)
public static final java.lang.String rTypeAbbreviation(int rType)
public static final java.lang.String wksPortMapToString(byte[] portMap, int offset, int len) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public static final java.lang.String rTypeMapToString(byte[] typeMap, int offset, int len) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public static final java.lang.String addressToString(byte[] address, int offset, int len, boolean lowerCase, boolean zeroPadding, boolean noCompactFormat, boolean noMixedFormat) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public static final java.lang.String quoteString(java.lang.String str) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final java.lang.String locToString(int value, int index)
public static final java.lang.String timeToString(int value)
public static final java.lang.String rDataToString(int rType, java.lang.Object rDataValue, int index, DNSName domain) throws java.lang.NullPointerException
java.lang.NullPointerException
public static final int rDataIndex(int rType, int textualIndex)
public static final java.lang.Object[] getFieldsAt(int field, int rType, DNSRecord[] records, int offset, int len) throws java.lang.NullPointerException, java.lang.ArrayIndexOutOfBoundsException
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException
public boolean equalsQuery(DNSRecord qdRecord)
public boolean equalsExact(DNSRecord record)
public java.lang.Object clone()
ReallyCloneable
this
object.
By the clone()
standard definition, this method
creates a new instance of the class of this object and
initializes all its fields with exactly the contents of the
corresponding fields of this object. Typically, native
clone()
method of Object
class is used
inside this method.
clone
in interface ReallyCloneable
clone
in class java.lang.Object
null
and != this
) of
this
instance.public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public boolean greaterThan(java.lang.Object obj)
greaterThan
in interface Sortable
obj
- the second compared object (may be null
).
true
if obj is comparable with
this
and this
object is greater than
obj, else false
.public int compareTo(DNSRecord record, boolean decodeRData) throws java.lang.NullPointerException
java.lang.NullPointerException
public java.lang.String toString(DNSName domain, DNSRecord prevRecord, boolean tabSeparated)
public java.lang.String toString()
toString
in class java.lang.Object
public void integrityCheck()
integrityCheck
in interface Verifiable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |