本文整理汇总了Java中org.xbill.DNS.RRset类的典型用法代码示例。如果您正苦于以下问题:Java RRset类的具体用法?Java RRset怎么用?Java RRset使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RRset类属于org.xbill.DNS包,在下文中一共展示了RRset类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: makeDelegationSignerSet
import org.xbill.DNS.RRset; //导入依赖的package包/类
private RRset makeDelegationSignerSet(DomainResource domain) {
RRset signerSet = new RRset();
for (DelegationSignerData signerData : domain.getDsData()) {
DSRecord dsRecord =
new DSRecord(
toAbsoluteName(domain.getFullyQualifiedDomainName()),
DClass.IN,
dnsDefaultDsTtl.getStandardSeconds(),
signerData.getKeyTag(),
signerData.getAlgorithm(),
signerData.getDigestType(),
signerData.getDigest());
signerSet.addRR(dsRecord);
}
return signerSet;
}
示例2: getCached
import org.xbill.DNS.RRset; //导入依赖的package包/类
private Message getCached(Message query) {
Cache cache = getCache();
if (cache == null)
return null;
Record question = query.getQuestion();
RRset[] rrsets = cache.findAnyRecords(question.getName(), question.getType());
if (rrsets == null)
return null;
Message msg = new Message();
for (RRset rrset : rrsets) {
@SuppressWarnings("unchecked")
Iterator<Record> recordsIter = rrset.rrs();
while (recordsIter.hasNext()) {
msg.addRecord(recordsIter.next(), Section.ANSWER);
}
}
return msg;
}
示例3: findKey
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Find the matching DNSKEY(s) to an RRSIG within a DNSKEY rrset. Normally
* this will only return one DNSKEY. It can return more than one, since
* KeyID/Footprints are not guaranteed to be unique.
*
* @param dnskeyRrset The DNSKEY rrset to search.
* @param signature The RRSIG to match against.
* @return A List contains a one or more DNSKEYRecord objects, or null if a
* matching DNSKEY could not be found.
*/
private List<DNSKEYRecord> findKey(RRset dnskeyRrset, RRSIGRecord signature) {
if (!signature.getSigner().equals(dnskeyRrset.getName())) {
logger.trace("findKey: could not find appropriate key because incorrect keyset was supplied. Wanted: "
+ signature.getSigner() + ", got: " + dnskeyRrset.getName());
return null;
}
int keyid = signature.getFootprint();
int alg = signature.getAlgorithm();
List<DNSKEYRecord> res = new ArrayList<DNSKEYRecord>(dnskeyRrset.size());
for (Iterator<?> i = dnskeyRrset.rrs(); i.hasNext();) {
DNSKEYRecord r = (DNSKEYRecord)i.next();
if (r.getAlgorithm() == alg && r.getFootprint() == keyid) {
res.add(r);
}
}
if (res.size() == 0) {
logger.trace("findKey: could not find a key matching the algorithm and footprint in supplied keyset. ");
return null;
}
return res;
}
示例4: verify
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Verifies an RRset. This routine does not modify the RRset. This RRset is
* presumed to be verifiable, and the correct DNSKEY rrset is presumed to
* have been found.
*
* @param rrset The RRset to verify.
* @param keyRrset The keys to verify the signatures in the RRset to check.
* @return SecurityStatus.SECURE if the rrest verified positively,
* SecurityStatus.BOGUS otherwise.
*/
public SecurityStatus verify(RRset rrset, RRset keyRrset) {
Iterator<?> i = rrset.sigs();
if (!i.hasNext()) {
logger.info("RRset failed to verify due to lack of signatures");
return SecurityStatus.BOGUS;
}
while (i.hasNext()) {
RRSIGRecord sigrec = (RRSIGRecord)i.next();
SecurityStatus res = this.verifySignature(rrset, sigrec, keyRrset);
if (res == SecurityStatus.SECURE) {
return res;
}
}
logger.info("RRset failed to verify: all signatures were BOGUS");
return SecurityStatus.BOGUS;
}
示例5: atLeastOneSupportedAlgorithm
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Determines if at least one of the DS records in the RRset has a supported
* algorithm.
*
* @param dsRRset The RR set to search in.
* @return True when at least one DS record uses a supported algorithm,
* false otherwise.
*/
static boolean atLeastOneSupportedAlgorithm(RRset dsRRset) {
Iterator<?> it = dsRRset.rrs();
while (it.hasNext()) {
Record r = (Record)it.next();
if (r.getType() == Type.DS) {
if (isAlgorithmSupported(((DSRecord)r).getAlgorithm())) {
return true;
}
// do nothing, there could be another DS we understand
}
}
return false;
}
示例6: atLeastOneDigestSupported
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Determines if at least one of the DS records in the RRset has a supported
* digest algorithm.
*
* @param dsRRset The RR set to search in.
* @return True when at least one DS record uses a supported digest
* algorithm, false otherwise.
*/
static boolean atLeastOneDigestSupported(RRset dsRRset) {
Iterator<?> it = dsRRset.rrs();
while (it.hasNext()) {
Record r = (Record)it.next();
if (r.getType() == Type.DS) {
if (isDigestSupported(((DSRecord)r).getDigestID())) {
return true;
}
// do nothing, there could be another DS we understand
}
}
return false;
}
示例7: getReason
import org.xbill.DNS.RRset; //导入依赖的package包/类
protected String getReason(Message m) {
for (RRset set : m.getSectionRRsets(Section.ADDITIONAL)) {
if (set.getName().equals(Name.root) && set.getType() == Type.TXT && set.getDClass() == ValidatingResolver.VALIDATION_REASON_QCLASS) {
StringBuilder sb = new StringBuilder();
@SuppressWarnings("unchecked")
List<String> strings = (List<String>)((TXTRecord)set.first()).getStrings();
for (String part : strings){
sb.append(part);
}
return sb.toString();
}
}
return null;
}
示例8: rrSetsToString
import org.xbill.DNS.RRset; //导入依赖的package包/类
public String rrSetsToString(RRset[] rrsets) {
StringBuffer ansBuffer = new StringBuffer();
Iterator it;
int i;
for (i = 0; i < rrsets.length; i++) {
RRset rrset = rrsets[i];
it = rrset.rrs();
while (it.hasNext()) {
Record r = (Record) it.next();
//Log.i(TAG, "rrsetstostring: type=" + r.getType());
ansBuffer.append(r.toString());
ansBuffer.append("\n");
}
//RRSIGs
final Iterator<Record> sigIter = rrset.sigs();
while (sigIter.hasNext()) {
final Record sigRec = sigIter.next();
ansBuffer.append(sigRec.toString());
ansBuffer.append("\n");
}
}
//replace tabs
String ret = ansBuffer.toString().replace('\t',' ');
return ret;
}
示例9: makeNameServerSet
import org.xbill.DNS.RRset; //导入依赖的package包/类
private RRset makeNameServerSet(DomainResource domain) {
RRset nameServerSet = new RRset();
for (String hostName : domain.loadNameserverFullyQualifiedHostNames()) {
NSRecord record =
new NSRecord(
toAbsoluteName(domain.getFullyQualifiedDomainName()),
DClass.IN,
dnsDefaultNsTtl.getStandardSeconds(),
toAbsoluteName(hostName));
nameServerSet.addRR(record);
}
return nameServerSet;
}
示例10: makeAddressSet
import org.xbill.DNS.RRset; //导入依赖的package包/类
private RRset makeAddressSet(HostResource host) {
RRset addressSet = new RRset();
for (InetAddress address : host.getInetAddresses()) {
if (address instanceof Inet4Address) {
ARecord record =
new ARecord(
toAbsoluteName(host.getFullyQualifiedHostName()),
DClass.IN,
dnsDefaultATtl.getStandardSeconds(),
address);
addressSet.addRR(record);
}
}
return addressSet;
}
示例11: makeV6AddressSet
import org.xbill.DNS.RRset; //导入依赖的package包/类
private RRset makeV6AddressSet(HostResource host) {
RRset addressSet = new RRset();
for (InetAddress address : host.getInetAddresses()) {
if (address instanceof Inet6Address) {
AAAARecord record =
new AAAARecord(
toAbsoluteName(host.getFullyQualifiedHostName()),
DClass.IN,
dnsDefaultATtl.getStandardSeconds(),
address);
addressSet.addRR(record);
}
}
return addressSet;
}
示例12: findUpdateRecords
import org.xbill.DNS.RRset; //导入依赖的package包/类
private ImmutableList<Record> findUpdateRecords(
Update update, String resourceName, int recordType) {
for (RRset set : update.getSectionRRsets(Section.UPDATE)) {
if (set.getName().toString().equals(resourceName) && set.getType() == recordType) {
return fixIterator(Record.class, set.rrs());
}
}
assert_().fail(
"No record set found for resource '%s' type '%s'",
resourceName, Type.string(recordType));
throw new AssertionError();
}
示例13: verifySignature
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Verify an RRset against a particular signature.
*
* @param rrset The RRset to verify.
* @param sigrec The signature record that signs the RRset.
* @param keyRrset The keys used to create the signature record.
*
* @return {@link SecurityStatus#SECURE} if the signature verified,
* {@link SecurityStatus#BOGUS} if it did not verify (for any
* reason), and {@link SecurityStatus#UNCHECKED} if verification
* could not be completed (usually because the public key was not
* available).
*/
private SecurityStatus verifySignature(RRset rrset, RRSIGRecord sigrec,
RRset keyRrset) {
List<DNSKEYRecord> keys = this.findKey(keyRrset, sigrec);
if (keys == null) {
logger.trace("could not find appropriate key");
return SecurityStatus.BOGUS;
}
SecurityStatus status = SecurityStatus.UNCHECKED;
for (DNSKEYRecord key : keys) {
try {
if (!rrset.getName().subdomain(keyRrset.getName())) {
logger.debug("signer name is off-tree");
status = SecurityStatus.BOGUS;
continue;
}
DNSSEC.verify(rrset, sigrec, key);
return SecurityStatus.SECURE;
}
catch (DNSSECException e) {
logger.error("Failed to validate RRset", e);
status = SecurityStatus.BOGUS;
}
}
return status;
}
示例14: SMessage
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Creates a new instance of this class.
*
* @param m The DNS message to wrap.
*/
public SMessage(Message m) {
this(m.getHeader());
this.question = m.getQuestion();
this.oPTRecord = m.getOPT();
for (int i = Section.ANSWER; i <= Section.ADDITIONAL; i++) {
RRset[] rrsets = m.getSectionRRsets(i);
for (int j = 0; j < rrsets.length; j++) {
this.addRRset(new SRRset(rrsets[j]), i);
}
}
}
示例15: SRRset
import org.xbill.DNS.RRset; //导入依赖的package包/类
/**
* Create a new SRRset from an existing RRset. This SRRset will contain that
* same internal Record objects as the original RRset.
*
* @param r The RRset to copy.
*/
public SRRset(RRset r) {
this();
for (Iterator<?> i = r.rrs(); i.hasNext();) {
addRR((Record)i.next());
}
for (Iterator<?> i = r.sigs(); i.hasNext();) {
addRR((Record)i.next());
}
}