Package org.xbill.DNS.lookup
Class LookupSession
java.lang.Object
org.xbill.DNS.lookup.LookupSession
LookupSession provides facilities to make DNS Queries. A LookupSession is intended to be long
lived, and it's behaviour can be configured using the properties of the
LookupSession.LookupSessionBuilder instance returned by builder().- Since:
- 3.4
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final booleanstatic final intstatic final intprivate final Executorprivate final HostsFileParserprivate final IrrelevantRecordModeprivate final intprivate final intprivate final Resolver -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateLookupSession(@NonNull Resolver resolver, int maxRedirects, int ndots, List<Name> searchPath, boolean cycleResults, List<Cache> caches, HostsFileParser hostsFileParser, Executor executor, IrrelevantRecordMode irrelevantRecordMode) -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Returns an emptyLookupSession.LookupSessionBuilderinstance.private static LookupResultbuildResult(Message answer, List<Name> aliases, Record query) Returns a LookupResult if this response was a non-exceptional empty result, throws otherwise.private <T extends Throwable,R>
CompletionStage<R> completeExceptionally(T failure) Returns aLookupSession.LookupSessionBuilderinstance initialized with defaults.expandName(Name name) Generate a stream of names according to the search path application semantics.(package private) CachegetCache(int dclass) lookupAsync(Name name, int type) Make an asynchronous lookup of the provided name using the defaultDClass.IN.lookupAsync(Name name, int type, int dclass) Make an asynchronous lookup of the provided name.lookupAsync(Record question) Make an asynchronous lookup with the providedRecord.private CompletionStage<LookupResult> lookupUntilSuccess(Iterator<Name> names, int type, int dclass) private CompletionStage<LookupResult> lookupWithCache(Record queryRecord, List<Name> aliases) private LookupResultlookupWithHosts(List<Name> names, int type) private CompletionStage<LookupResult> lookupWithResolver(Record queryRecord, List<Name> aliases) private MessagemaybeAddToCache(Message message) private CompletionStage<LookupResult> maybeFollowRedirect(LookupResult response, Record query, int redirectCount) private CompletionStage<LookupResult> maybeFollowRedirectsInAnswer(LookupResult response, Record query, int redirectCount) private CompletionStage<LookupResult> resolveRedirects(LookupResult response, Record query) private static NamesafeConcat(Name name, Name suffix) private CompletionStage<LookupResult> setResponseToMessageFuture(SetResponse setResponse, Record queryRecord, List<Name> aliases)
-
Field Details
-
DEFAULT_MAX_ITERATIONS
public static final int DEFAULT_MAX_ITERATIONS- See Also:
-
DEFAULT_NDOTS
public static final int DEFAULT_NDOTS- See Also:
-
resolver
-
maxRedirects
private final int maxRedirects -
ndots
private final int ndots -
searchPath
-
cycleResults
private final boolean cycleResults -
caches
-
hostsFileParser
-
executor
-
irrelevantRecordMode
-
-
Constructor Details
-
LookupSession
private LookupSession(@NonNull @NonNull Resolver resolver, int maxRedirects, int ndots, List<Name> searchPath, boolean cycleResults, List<Cache> caches, HostsFileParser hostsFileParser, Executor executor, IrrelevantRecordMode irrelevantRecordMode)
-
-
Method Details
-
builder
Returns an emptyLookupSession.LookupSessionBuilderinstance. SeedefaultBuilder()for a builder initialized with defaults. -
defaultBuilder
Returns aLookupSession.LookupSessionBuilderinstance initialized with defaults.- Resolver: an
ExtendedResolverinitialized with the system's default DNS servers as determined byResolverConfig. - ndots: as determined by
ResolverConfig. - Cache: A cache for the
INclass is installed. - Hosts: The local host database file is used.
- Resolver: an
-
getCache
-
lookupAsync
Make an asynchronous lookup with the providedRecord.- Parameters:
question- the name, type and DClass to look up.- Returns:
- A
CompletionStagewhat will yield the eventual lookup result. - Since:
- 3.6
-
lookupAsync
Make an asynchronous lookup of the provided name using the defaultDClass.IN.- Parameters:
name- the name to look up.type- the type to look up, values should correspond to constants inType.- Returns:
- A
CompletionStagewhat will yield the eventual lookup result.
-
lookupAsync
Make an asynchronous lookup of the provided name.- Parameters:
name- the name to look up.type- the type to look up, values should correspond to constants inType.dclass- the class to look up, values should correspond to constants inDClass.- Returns:
- A
CompletionStagewhat will yield the eventual lookup result.
-
expandName
Generate a stream of names according to the search path application semantics. The semantics of this is a bit odd, but they are inherited fromLookup. Note that the stream returned is never empty, as it will at the very least always containname. -
safeConcat
-
lookupWithHosts
-
lookupUntilSuccess
private CompletionStage<LookupResult> lookupUntilSuccess(Iterator<Name> names, int type, int dclass) -
lookupWithCache
-
lookupWithResolver
-
maybeAddToCache
-
setResponseToMessageFuture
private CompletionStage<LookupResult> setResponseToMessageFuture(SetResponse setResponse, Record queryRecord, List<Name> aliases) -
completeExceptionally
-
resolveRedirects
-
maybeFollowRedirect
private CompletionStage<LookupResult> maybeFollowRedirect(LookupResult response, Record query, int redirectCount) -
maybeFollowRedirectsInAnswer
private CompletionStage<LookupResult> maybeFollowRedirectsInAnswer(LookupResult response, Record query, int redirectCount) -
buildResult
Returns a LookupResult if this response was a non-exceptional empty result, throws otherwise.
-