Package | Description |
---|---|
org.xbill.DNS | |
org.xbill.DNS.dnssec | |
org.xbill.DNS.lookup | |
org.xbill.DNS.tools |
Modifier and Type | Class and Description |
---|---|
class |
Update
A helper class for constructing dynamic DNS (DDNS) update messages.
|
Modifier and Type | Field and Description |
---|---|
private Message |
ExtendedResolver.Resolution.query |
private Message |
NioTcpClient.Transaction.query |
Modifier and Type | Method and Description |
---|---|
Message |
Message.clone()
Creates a copy of this Message.
|
static Message |
Message.newQuery(Record r)
Creates a new Message with a random Message ID suitable for sending as a query.
|
static Message |
Message.newUpdate(Name zone)
Creates a new Message to contain a dynamic update.
|
Message |
Message.normalize(Message query)
Creates a normalized copy of this message by following xNAME chains, synthesizing CNAMEs from
DNAMEs if necessary, and removing illegal RRsets from
Section.AUTHORITY and Section.ADDITIONAL . |
Message |
Message.normalize(Message query,
boolean throwOnIrrelevantRecord)
Creates a normalized copy of this message by following xNAME chains, synthesizing CNAMEs from
DNAMEs if necessary, and removing illegal RRsets from
Section.AUTHORITY and Section.ADDITIONAL . |
private Message |
ZoneTransferIn.parseMessage(byte[] b) |
private Message |
SimpleResolver.parseMessage(byte[] b) |
private Message |
DohResolver.prepareQuery(Message query) |
default Message |
Resolver.send(Message query)
Sends a message and waits for a response.
|
private Message |
SimpleResolver.sendAXFR(Message query) |
Modifier and Type | Method and Description |
---|---|
private java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.Resolution.handle(Message result,
java.lang.Throwable ex,
java.util.concurrent.Executor executorService) |
private java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.Resolution.send(java.util.concurrent.Executor executorService) |
java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.sendAsync(Message query)
Sends a message to multiple servers, and queries are sent multiple times until either a
successful response is received, or it is clear that there is no successful response.
|
default java.util.concurrent.CompletionStage<Message> |
Resolver.sendAsync(Message query)
Asynchronously sends a message using the default
ForkJoinPool.commonPool() . |
java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync(Message query) |
java.util.concurrent.CompletionStage<Message> |
SimpleResolver.sendAsync(Message query)
Asynchronously sends a message to a single server.
|
(package private) java.util.concurrent.CompletableFuture<Message> |
SimpleResolver.sendAsync(Message query,
boolean forceTcp,
java.util.concurrent.Executor executor) |
java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Sends a message to multiple servers, and queries are sent multiple times until either a
successful response is received, or it is clear that there is no successful response.
|
default java.util.concurrent.CompletionStage<Message> |
Resolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Asynchronously sends a message.
|
java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync(Message query,
java.util.concurrent.Executor executor) |
java.util.concurrent.CompletionStage<Message> |
SimpleResolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Asynchronously sends a message to a single server.
|
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11(Message query,
java.util.concurrent.Executor executor) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11WithConcurrentRequestPermit(Message query,
java.util.concurrent.Executor executor,
long startTime,
java.lang.Object requestBuilder,
AsyncSemaphore.Permit initialRequestPermit,
boolean isInitialRequest,
AsyncSemaphore.Permit maxConcurrentRequestPermit) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11WithInitialRequestPermit(Message query,
java.util.concurrent.Executor executor,
long startTime,
java.lang.Object requestBuilder,
AsyncSemaphore.Permit initialRequestPermit) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync8(Message query,
java.util.concurrent.Executor executor) |
private java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.Resolution.startAsync(java.util.concurrent.Executor executorService) |
Modifier and Type | Method and Description |
---|---|
SetResponse |
Cache.addMessage(Message in)
Adds all data from a Message into the Cache.
|
private void |
TSIG.StreamVerifier.addUnsignedMessageToMac(Message m,
byte[] messageBytes,
javax.crypto.Mac hmac) |
void |
TSIG.apply(Message m,
int error,
TSIGRecord old)
Generates a TSIG record with a specific error for a message and adds it to the message.
|
void |
TSIG.apply(Message m,
int error,
TSIGRecord old,
boolean fullSignature)
Generates a TSIG record with a specific error for a message and adds it to the message.
|
void |
TSIG.apply(Message m,
TSIGRecord old)
Generates a TSIG record for a message and adds it to the message
|
void |
TSIG.apply(Message m,
TSIGRecord old,
boolean fullSignature)
Generates a TSIG record with a specific error for a message and adds it to the message.
|
private void |
SimpleResolver.applyEDNS(Message query) |
void |
TSIG.applyStream(Message m,
TSIGRecord old,
boolean fullSignature)
Deprecated.
|
static byte[] |
DNSSEC.digestMessage(SIGRecord sig,
Message msg,
byte[] previous)
Creates a byte array containing the concatenation of the fields of the SIG(0) record and the
message to be signed.
|
void |
TSIG.StreamGenerator.generate(Message message)
Generate TSIG a signature for use of the message in a stream.
|
(package private) void |
TSIG.StreamGenerator.generate(Message message,
boolean isLastMessage) |
TSIGRecord |
TSIG.generate(Message m,
byte[] b,
int error,
TSIGRecord old)
Generates a TSIG record with a specific error for a message that has been rendered.
|
TSIGRecord |
TSIG.generate(Message m,
byte[] b,
int error,
TSIGRecord old,
boolean fullSignature)
Generates a TSIG record with a specific error for a message that has been rendered.
|
private TSIGRecord |
TSIG.generate(Message m,
byte[] b,
int error,
TSIGRecord old,
boolean fullSignature,
javax.crypto.Mac hmac)
Generates a TSIG record with a specific error for a message that has been rendered.
|
private java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.Resolution.handle(Message result,
java.lang.Throwable ex,
java.util.concurrent.Executor executorService) |
private void |
Message.logOrThrow(boolean throwOnIrrelevantRecord,
java.lang.String format,
RRset rrset,
Name sname,
Message query) |
private int |
SimpleResolver.maxUDPSize(Message query) |
Message |
Message.normalize(Message query)
Creates a normalized copy of this message by following xNAME chains, synthesizing CNAMEs from
DNAMEs if necessary, and removing illegal RRsets from
Section.AUTHORITY and Section.ADDITIONAL . |
Message |
Message.normalize(Message query,
boolean throwOnIrrelevantRecord)
Creates a normalized copy of this message by following xNAME chains, synthesizing CNAMEs from
DNAMEs if necessary, and removing illegal RRsets from
Section.AUTHORITY and Section.ADDITIONAL . |
private Message |
DohResolver.prepareQuery(Message query) |
void |
ResolverListener.receiveMessage(java.lang.Object id,
Message m)
Deprecated.
The callback used by an asynchronous resolver
|
default Message |
Resolver.send(Message query)
Sends a message and waits for a response.
|
java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.sendAsync(Message query)
Sends a message to multiple servers, and queries are sent multiple times until either a
successful response is received, or it is clear that there is no successful response.
|
default java.util.concurrent.CompletionStage<Message> |
Resolver.sendAsync(Message query)
Asynchronously sends a message using the default
ForkJoinPool.commonPool() . |
java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync(Message query) |
java.util.concurrent.CompletionStage<Message> |
SimpleResolver.sendAsync(Message query)
Asynchronously sends a message to a single server.
|
(package private) java.util.concurrent.CompletableFuture<Message> |
SimpleResolver.sendAsync(Message query,
boolean forceTcp,
java.util.concurrent.Executor executor) |
java.util.concurrent.CompletionStage<Message> |
ExtendedResolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Sends a message to multiple servers, and queries are sent multiple times until either a
successful response is received, or it is clear that there is no successful response.
|
default java.util.concurrent.CompletionStage<Message> |
Resolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Asynchronously sends a message.
|
java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync(Message query,
java.util.concurrent.Executor executor) |
java.util.concurrent.CompletionStage<Message> |
SimpleResolver.sendAsync(Message query,
java.util.concurrent.Executor executor)
Asynchronously sends a message to a single server.
|
default java.lang.Object |
Resolver.sendAsync(Message query,
ResolverListener listener)
Deprecated.
|
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11(Message query,
java.util.concurrent.Executor executor) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11WithConcurrentRequestPermit(Message query,
java.util.concurrent.Executor executor,
long startTime,
java.lang.Object requestBuilder,
AsyncSemaphore.Permit initialRequestPermit,
boolean isInitialRequest,
AsyncSemaphore.Permit maxConcurrentRequestPermit) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync11WithInitialRequestPermit(Message query,
java.util.concurrent.Executor executor,
long startTime,
java.lang.Object requestBuilder,
AsyncSemaphore.Permit initialRequestPermit) |
private java.util.concurrent.CompletionStage<Message> |
DohResolver.sendAsync8(Message query,
java.util.concurrent.Executor executor) |
private Message |
SimpleResolver.sendAXFR(Message query) |
(package private) static java.util.concurrent.CompletableFuture<byte[]> |
NioTcpClient.sendrecv(java.net.InetSocketAddress local,
java.net.InetSocketAddress remote,
Message query,
byte[] data,
java.time.Duration timeout) |
(package private) static java.util.concurrent.CompletableFuture<byte[]> |
NioUdpClient.sendrecv(java.net.InetSocketAddress local,
java.net.InetSocketAddress remote,
Message query,
byte[] data,
int max,
java.time.Duration timeout) |
static void |
SIG0.signMessage(Message message,
KEYRecord key,
java.security.PrivateKey privkey,
SIGRecord previous)
Sign a message with SIG(0).
|
static void |
SIG0.signMessage(Message message,
KEYRecord key,
java.security.PrivateKey privkey,
SIGRecord previous,
java.time.Instant timeSigned)
Sign a message with SIG(0).
|
(package private) static SIGRecord |
DNSSEC.signMessage(Message message,
SIGRecord previous,
KEYRecord key,
java.security.PrivateKey privkey,
java.time.Instant inception,
java.time.Instant expiration) |
private <T> java.util.concurrent.CompletableFuture<T> |
DohResolver.timeoutFailedFuture(Message query,
java.lang.Throwable inner) |
int |
TSIG.StreamVerifier.verify(Message message,
byte[] messageBytes)
Verifies a TSIG record on an incoming message that is part of a multiple message response.
|
int |
TSIG.StreamVerifier.verify(Message message,
byte[] messageBytes,
boolean isLastMessage)
Verifies a TSIG record on an incoming message that is part of a multiple message response.
|
byte |
TSIG.verify(Message m,
byte[] b,
int length,
TSIGRecord old)
Deprecated.
|
int |
TSIG.verify(Message m,
byte[] messageBytes,
TSIGRecord requestTSIG)
Verifies a TSIG record on an incoming message.
|
int |
TSIG.verify(Message m,
byte[] messageBytes,
TSIGRecord requestTSIG,
boolean fullSignature)
Verifies a TSIG record on an incoming message.
|
private int |
TSIG.verify(Message m,
byte[] messageBytes,
TSIGRecord requestTSIG,
boolean fullSignature,
javax.crypto.Mac hmac)
Verifies a TSIG record on an incoming message.
|
static void |
SIG0.verifyMessage(Message message,
byte[] b,
KEYRecord key,
SIGRecord previous)
Verify a message using SIG(0).
|
static void |
SIG0.verifyMessage(Message message,
byte[] b,
KEYRecord key,
SIGRecord previous,
java.time.Instant now)
Verify a message using SIG(0).
|
(package private) static void |
DNSSEC.verifyMessage(Message message,
byte[] bytes,
SIGRecord sig,
SIGRecord previous,
KEYRecord key,
java.time.Instant now) |
private void |
SimpleResolver.verifyTSIG(Message query,
Message response,
byte[] b) |
private void |
DohResolver.verifyTSIG(Message query,
Message response,
byte[] b,
TSIG tsig) |
Constructor and Description |
---|
Resolution(ExtendedResolver eres,
Message query) |
Modifier and Type | Method and Description |
---|---|
Message |
SMessage.getMessage()
Gets this message as a standard DNSJAVA message.
|
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.CompletionStage<Message> |
ValidatingResolver.sendAsync(Message query)
Asynchronously sends a message and validates the response with DNSSEC before returning it.
|
Modifier and Type | Method and Description |
---|---|
private void |
ValidatingResolver.addValidationReasonTxtRecord(Message m,
java.lang.String reason) |
private void |
ValidatingResolver.applyEdeToOpt(SMessage validated,
Message m) |
static ResponseClassification |
ValUtils.classifyResponse(Message request,
SMessage m)
Given a response, classify ANSWER responses into a subtype.
|
private KeyEntry |
ValidatingResolver.dsReponseToKeForNodata(SMessage response,
Message request,
SRRset keyRrset)
Given a DS response, the DS request, and the current key rrset, validate the DS response for
the NODATA case, returning a KeyEntry.
|
private KeyEntry |
ValidatingResolver.dsResponseToKE(SMessage response,
Message request,
SRRset keyRrset)
Given a DS response, the DS request, and the current key rrset, validate the DS response,
returning a KeyEntry.
|
private static SMessage |
ValidatingResolver.errorMessage(Message request,
int rcode)
Creates a response message with the given return code.
|
JustifiedSecStatus |
ValUtils.nsecProvesNodataDsReply(Message request,
SMessage response,
SRRset keyRrset,
java.time.Instant date)
Check DS absence.
|
private java.util.concurrent.CompletionStage<java.lang.Void> |
ValidatingResolver.processDNSKEYResponse(Message request,
SMessage response,
FindKeyState state) |
private java.util.concurrent.CompletionStage<java.lang.Void> |
ValidatingResolver.processDSResponse(Message request,
SMessage response,
FindKeyState state)
This handles the responses to locally generated DS queries.
|
private SMessage |
ValidatingResolver.processFinishedState(Message request,
SMessage response)
Apply any final massaging to a response before returning up the pipeline.
|
private java.util.concurrent.CompletionStage<SMessage> |
ValidatingResolver.processValidate(Message request,
SMessage response) |
java.util.concurrent.CompletionStage<Message> |
ValidatingResolver.sendAsync(Message query)
Asynchronously sends a message and validates the response with DNSSEC before returning it.
|
private java.util.concurrent.CompletionStage<SMessage> |
ValidatingResolver.sendRequest(Message request) |
private java.util.concurrent.CompletionStage<java.lang.Void> |
ValidatingResolver.validateNameErrorResponse(Message request,
SMessage response)
Validate a NAMEERROR signed response -- a response that has a NXDOMAIN Rcode.
|
private java.util.concurrent.CompletionStage<java.lang.Void> |
ValidatingResolver.validateNodataResponse(Message request,
SMessage response)
Validate a NOERROR/NODATA signed response -- a response that has a NOERROR Rcode but no ANSWER
section RRsets.
|
private java.util.concurrent.CompletionStage<java.lang.Void> |
ValidatingResolver.validatePositiveResponse(Message request,
SMessage response)
Given a "postive" response -- a response that contains an answer to the question, and no CNAME
chain, validate this response.
|
Constructor and Description |
---|
SMessage(Message m)
Creates a new instance of this class.
|
Modifier and Type | Field and Description |
---|---|
private java.util.Map<Record,Message> |
LookupResult.queryResponsePairs
The queries and responses that made up the result.
|
Modifier and Type | Method and Description |
---|---|
private Message |
LookupSession.maybeAddToCache(Message message) |
Modifier and Type | Method and Description |
---|---|
private static LookupResult |
LookupSession.buildResult(Message answer,
java.util.List<Name> aliases,
Record query)
Returns a LookupResult if this response was a non-exceptional empty result, else null.
|
private Message |
LookupSession.maybeAddToCache(Message message) |
Constructor and Description |
---|
LookupResult(LookupResult previous,
Record query,
Message answer,
boolean isAuthenticated,
java.util.List<Record> records,
java.util.List<Name> aliases) |
Modifier and Type | Field and Description |
---|---|
(package private) Message |
update.query |
(package private) Message |
update.response |
Modifier and Type | Method and Description |
---|---|
Message |
update.newMessage() |
Modifier and Type | Method and Description |
---|---|
private void |
jnamed.addAdditional(Message response,
int flags) |
private void |
jnamed.addAdditional2(Message response,
int section,
int flags) |
(package private) byte |
jnamed.addAnswer(Message response,
Name name,
int type,
int dclass,
int iterations,
int flags) |
private void |
jnamed.addCacheNS(Message response,
Cache cache,
Name name) |
private void |
jnamed.addGlue(Message response,
Name name,
int flags) |
private void |
jnamed.addNS(Message response,
Zone zone,
int flags) |
(package private) void |
jnamed.addRRset(Name name,
Message response,
RRset rrset,
int section,
int flags) |
private void |
jnamed.addSOA(Message response,
Zone zone) |
(package private) byte[] |
jnamed.doAXFR(Name name,
Message query,
TSIG tsig,
TSIGRecord qtsig,
java.net.Socket s) |
(package private) static void |
dig.doQuery(Message response,
long ms) |
byte[] |
jnamed.errorMessage(Message query,
int rcode) |
(package private) byte[] |
jnamed.generateReply(Message query,
byte[] in,
java.net.Socket s) |