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(ByteBuffer byteBuffer)
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.
|
Message |
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).
|
Optional<Resolver> |
getResolver()
Gets the resolver that originally received this Message from a server.
|
List<Record> |
getSection(int section)
Returns all records in the given section, or an empty list if the section is empty.
|
Record[] |
getSectionArray(int section)
Deprecated.
use
getSection(int) |
List<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.
|
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 |
setResolver(Resolver resolver)
Sets the resolver that originally received this Message from a server.
|
void |
setTSIG(TSIG key,
int error,
TSIGRecord querytsig)
Sets the TSIG key and other necessary information to sign a message.
|
String |
toString()
Converts the Message to a String.
|
byte[] |
toWire()
Returns an array containing the wire format representation of the
Message , but does not
do any additional processing (e.g. |
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 IOException
b
- A byte array containing the DNS Message.IOException
public Message(ByteBuffer byteBuffer) throws IOException
byteBuffer
- A ByteBuffer containing the DNS Message.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()
@Deprecated public Record[] getSectionArray(int section)
getSection(int)
public List<Record> getSection(int section)
public List<RRset> getSectionRRsets(int section)
public byte[] toWire()
Message
, but does not
do any additional processing (e.g. OPT/TSIG records, truncation).
Do NOT use this to actually transmit a message, use toWire(int)
instead.
public byte[] toWire(int maxLength)
Do NOT use this method in conjunction with TSIG.apply(Message, TSIGRecord)
, it
produces inconsistent results! Use setTSIG(TSIG, int, TSIGRecord)
instead.
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 String sectionToString(int i)
Section
public String toString()
public Message clone()
clone
in class Object
Resolver
,
TSIGRecord
,
OPTRecord
public void setResolver(Resolver resolver)
Copyright © 2021 dnsjava.org. All rights reserved.