org.xbill.DNS
public class Message extends java.lang.Object implements java.lang.Cloneable
Modifier and Type | Field and Description |
---|---|
static int |
MAXLENGTH
The maximum length of a message in wire format.
|
Constructor and Description |
---|
Message()
Creates a new Message with a random Message ID
|
Message(byte[] b)
Creates a new Message from its DNS wire format representation
|
Message(int id)
Creates a new Message with the specified Message ID
|
Modifier and Type | Method and Description |
---|---|
void |
addRecord(Record r,
int section)
Adds a record to a section of the Message, and adjusts the header.
|
java.lang.Object |
clone()
Creates a copy of this Message.
|
boolean |
findRecord(Record r)
Determines if the given record is already present in any section.
|
boolean |
findRecord(Record r,
int section)
Determines if the given record is already present in the given section.
|
boolean |
findRRset(Name name,
int type)
Determines if an RRset with the given name and type is already
present in any section.
|
boolean |
findRRset(Name name,
int type,
int section)
Determines if an RRset with the given name and type is already
present in the given section.
|
Header |
getHeader()
Retrieves the Header.
|
OPTRecord |
getOPT()
Returns the OPT record from the ADDITIONAL section, if one is present.
|
Record |
getQuestion()
Returns the first record in the QUESTION section.
|
int |
getRcode()
Returns the message's rcode (error code).
|
Record[] |
getSectionArray(int section)
Returns an array containing all records in the given section, or an
empty array if the section is empty.
|
RRset[] |
getSectionRRsets(int section)
Returns an array containing all records in the given section grouped into
RRsets.
|
TSIGRecord |
getTSIG()
Returns the TSIG record from the ADDITIONAL section, if one is present.
|
boolean |
isSigned()
Was this message signed by a TSIG?
|
boolean |
isVerified()
If this message was signed by a TSIG, was the TSIG verified?
|
static Message |
newQuery(Record r)
Creates a new Message with a random Message ID suitable for sending as a
query.
|
static Message |
newUpdate(Name zone)
Creates a new Message to contain a dynamic update.
|
int |
numBytes()
Returns the size of the message.
|
void |
removeAllRecords(int section)
Removes all records from a section of the Message, and adjusts the header.
|
boolean |
removeRecord(Record r,
int section)
Removes a record from a section of the Message, and adjusts the header.
|
java.lang.String |
sectionToString(int i)
Converts the given section of the Message to a String.
|
void |
setHeader(Header h)
Replaces the Header with a new one.
|
void |
setTSIG(TSIG key,
int error,
TSIGRecord querytsig)
Sets the TSIG key and other necessary information to sign a message.
|
java.lang.String |
toString()
Converts the Message to a String.
|
byte[] |
toWire()
Returns an array containing the wire format representation of the Message.
|
byte[] |
toWire(int maxLength)
Returns an array containing the wire format representation of the Message
with the specified maximum length.
|
public static final int MAXLENGTH
public Message(int id)
public Message()
public Message(byte[] b) throws java.io.IOException
b
- A byte array containing the DNS Message.java.io.IOException
public static Message newQuery(Record r)
r
- A record containing the questionpublic static Message newUpdate(Name zone)
zone
- The zone to be updatedpublic void addRecord(Record r, int section)
public boolean removeRecord(Record r, int section)
public void removeAllRecords(int section)
public boolean findRecord(Record r, int section)
public boolean findRecord(Record r)
public boolean findRRset(Name name, int type, int section)
public boolean findRRset(Name name, int type)
public Record getQuestion()
public TSIGRecord getTSIG()
TSIGRecord
,
TSIG
,
Section
public boolean isSigned()
TSIG
public boolean isVerified()
TSIG
public OPTRecord getOPT()
public int getRcode()
public Record[] getSectionArray(int section)
public RRset[] getSectionRRsets(int section)
public byte[] toWire()
public byte[] toWire(int maxLength)
public void setTSIG(TSIG key, int error, TSIGRecord querytsig)
key
- The TSIG key.error
- The value of the TSIG error field.querytsig
- If this is a response, the TSIG from the request.public int numBytes()
public java.lang.String sectionToString(int i)
Section
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.Object clone()
clone
in class java.lang.Object
Resolver
,
TSIGRecord
,
OPTRecord