Package org.xbill.DNS
Class Cache
java.lang.Object
org.xbill.DNS.Cache
A cache of DNS records. The cache obeys TTLs, so items are purged after their validity period is
complete. Negative answers are cached, to avoid repeated failed DNS queries. The credibility of
each RRset is maintained, so that more credible records replace less credible records, and
lookups can specify the minimum credibility of data they are requesting.
- Author:
- Brian Wellington
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddMessage(Message in) Adds all data from a Message into the Cache.voidaddNegative(Name name, int type, SOARecord soa, int cred) Adds a negative entry to the Cache.voidAdds a record to the Cache.voidDeprecated.<T extends Record>
voidAdds an RRset to the Cache.voidEmpties the Cache.findAnyRecords(Name name, int type) Looks up Records in the Cache (a wrapper around lookupRecords).findRecords(Name name, int type) Looks up credible Records in the Cache (a wrapper around lookupRecords).voidFlushes all RRsets with a given name from the cachevoidFlushes an RRset from the cacheintReturns the DNS class of this cache.intGets the maximum length of time that records will be stored in this Cache.intGets the maximum number of entries in the Cache, where an entry consists of all records with a specific Name.intGets the maximum length of time that a negative response will be stored in this Cache.intgetSize()Gets the current number of entries in the Cache, where an entry consists of all records with a specific Name.protected SetResponseFinds all matching sets or something that causes the lookup to stop.lookupRecords(Name name, int type, int minCred) Looks up Records in the Cache.voidsetMaxCache(int seconds) Sets the maximum length of time that records will be stored in this Cache.voidsetMaxEntries(int entries) Sets the maximum number of entries in the Cache, where an entry consists of all records with a specific Name.voidsetMaxNCache(int seconds) Sets the maximum length of time that a negative response will be stored in this Cache.toString()Returns the contents of the Cache as a string.
-
Constructor Details
-
Cache
public Cache(int dclass) Creates an empty Cache- Parameters:
dclass- The DNS class of this cache- See Also:
-
Cache
public Cache()Creates an empty Cache for class IN.- See Also:
-
Cache
Creates a Cache which initially contains all records in the specified file.- Throws:
IOException
-
-
Method Details
-
clearCache
public void clearCache()Empties the Cache. -
addRecord
Deprecated.Adds a record to the Cache.- Parameters:
r- The record to be addedcred- The credibility of the recordo- unused
-
addRecord
Adds a record to the Cache.- Parameters:
r- The record to be addedcred- The credibility of the record- See Also:
-
addRRset
Adds an RRset to the Cache.- Parameters:
rrset- The RRset to be addedcred- The credibility of these records- See Also:
-
addNegative
Adds a negative entry to the Cache.- Parameters:
name- The name of the negative entrytype- The type of the negative entrysoa- The SOA record to add to the negative cache entry, or null. The negative cache ttl is derived from the SOA.cred- The credibility of the negative entry
-
lookup
Finds all matching sets or something that causes the lookup to stop. -
lookupRecords
Looks up Records in the Cache. This follows CNAMEs and handles negatively cached data.- Parameters:
name- The name to look uptype- The type to look upminCred- The minimum acceptable credibility- Returns:
- A SetResponse object
- See Also:
-
findRecords
Looks up credible Records in the Cache (a wrapper around lookupRecords). Unlike lookupRecords, this given no indication of why failure occurred.- Parameters:
name- The name to look uptype- The type to look up- Returns:
- A list of matching RRsets, or
null. - See Also:
-
findAnyRecords
Looks up Records in the Cache (a wrapper around lookupRecords). Unlike lookupRecords, this given no indication of why failure occurred.- Parameters:
name- The name to look uptype- The type to look up- Returns:
- A list of matching RRsets, or
null. - See Also:
-
addMessage
Adds all data from a Message into the Cache. Each record is added with the appropriate credibility, and negative answers are cached as such.- Parameters:
in- The Message to be added- Returns:
- A SetResponse that reflects what would be returned from a cache lookup, or null if nothing useful could be cached from the message.
- See Also:
-
flushSet
Flushes an RRset from the cache- Parameters:
name- The name of the records to be flushedtype- The type of the records to be flushed- See Also:
-
flushName
Flushes all RRsets with a given name from the cache- Parameters:
name- The name of the records to be flushed- See Also:
-
setMaxNCache
public void setMaxNCache(int seconds) Sets the maximum length of time that a negative response will be stored in this Cache. A negative value disables this feature (that is, sets no limit). -
getMaxNCache
public int getMaxNCache()Gets the maximum length of time that a negative response will be stored in this Cache. A negative value indicates no limit. -
setMaxCache
public void setMaxCache(int seconds) Sets the maximum length of time that records will be stored in this Cache. A negative value disables this feature (that is, sets no limit). -
getMaxCache
public int getMaxCache()Gets the maximum length of time that records will be stored in this Cache. A negative value indicates no limit. -
getSize
public int getSize()Gets the current number of entries in the Cache, where an entry consists of all records with a specific Name. -
getMaxEntries
public int getMaxEntries()Gets the maximum number of entries in the Cache, where an entry consists of all records with a specific Name. A negative value is treated as an infinite limit. -
setMaxEntries
public void setMaxEntries(int entries) Sets the maximum number of entries in the Cache, where an entry consists of all records with a specific Name. A negative value is treated as an infinite limit.Note that setting this to a value lower than the current number of entries will not cause the Cache to shrink immediately.
The default maximum number of entries is 50000.
- Parameters:
entries- The maximum number of entries in the Cache.
-
getDClass
public int getDClass()Returns the DNS class of this cache. -
toString
Returns the contents of the Cache as a string.
-
addRecord(Record, int)