private void processResponse(Name name, SetResponse response) { if (response.isSuccessful()) { RRset [] rrsets = response.answers(); List l = new ArrayList(); Iterator it; answers = (Record []) l.toArray(new Record[l.size()]); done = true; } else if (response.isNXDOMAIN()) { nxdomain = true; doneCurrent = true; done = true; } else if (response.isNXRRSET()) { result = TYPE_NOT_FOUND; answers = null; done = true; } else if (response.isCNAME()) { CNAMERecord cname = response.getCNAME(); follow(cname.getTarget(), name); } else if (response.isDNAME()) { DNAMERecord dname = response.getDNAME(); try { follow(name.fromDNAME(dname), name); } else if (response.isDelegation()) {
static SetResponse ofType(int type) { switch (type) { case UNKNOWN: return unknown; case NXDOMAIN: return nxdomain; case NXRRSET: return nxrrset; case DELEGATION: case CNAME: case DNAME: case SUCCESSFUL: SetResponse sr = new SetResponse(); sr.type = type; sr.data = null; return sr; default: throw new IllegalArgumentException("invalid type"); } }
private RRset [] findRecords(Name name, int type, int minCred) { SetResponse cr = lookupRecords(name, type, minCred); if (cr.isSuccessful()) return cr.answers(); else return null; }
private final void addCacheNS(Message response, Cache cache, Name name) { SetResponse sr = cache.lookupRecords(name, Type.NS, Credibility.HINT); if (!sr.isDelegation()) return; RRset nsRecords = sr.getNS(); Iterator it = nsRecords.rrs(); while (it.hasNext()) { Record r = (Record) it.next(); response.addRecord(r, Section.AUTHORITY); } }
LOG.info("found local record? {}", sr != null && sr.isSuccessful()); if (sr.isCNAME()) { CNAMERecord cname = sr.getCNAME(); RRset rrset = zone.findExactMatch(cname.getName(), Type.CNAME); addRRset(name, response, rrset, Section.ANSWER, flags); type, dclass, iterations + 1, flags); if (sr.isNXDOMAIN()) { response.getHeader().setRcode(Rcode.NXDOMAIN); if (isDNSSECEnabled()) { } else if (sr.isNXRRSET()) { LOG.info("No data found the given name {} and type {}", name, type); addSOA(response, zone, flags); response.getHeader().setFlag(Flags.AA); } else if (sr.isSuccessful()) { RRset[] rrsets = sr.answers(); LOG.info("found answers {}", rrsets); for (int i = 0; i < rrsets.length; i++) {
return SetResponse.ofType(SetResponse.NXDOMAIN); RRset ns = oneRRset(types, Type.NS); if (ns != null) return new SetResponse(SetResponse.DELEGATION, ns); sr = new SetResponse(SetResponse.SUCCESSFUL); RRset [] sets = allRRsets(types); for (int i = 0; i < sets.length; i++) sr.addRRset(sets[i]); return sr; rrset = oneRRset(types, type); if (rrset != null) { sr = new SetResponse(SetResponse.SUCCESSFUL); sr.addRRset(rrset); return sr; return new SetResponse(SetResponse.CNAME, rrset); } else { rrset = oneRRset(types, Type.DNAME); if (rrset != null) return new SetResponse(SetResponse.DNAME, rrset); return SetResponse.ofType(SetResponse.NXRRSET);
BitSet bitMap = new BitSet(); bitMap.set(Type.NXT); RRset[] rRsets = sr.answers(); for (RRset rRset : rRsets) { int typeCode = rRset.getType();
private RRset [] findRecords(Name name, int type, int minCred) { SetResponse cr = lookupRecords(name, type, minCred); if (cr.isSuccessful()) return cr.answers(); else return null; }
return SetResponse.ofType(SetResponse.NXDOMAIN); RRset ns = oneRRset(types, Type.NS); if (ns != null) return new SetResponse(SetResponse.DELEGATION, ns); sr = new SetResponse(SetResponse.SUCCESSFUL); RRset [] sets = allRRsets(types); for (int i = 0; i < sets.length; i++) sr.addRRset(sets[i]); return sr; rrset = oneRRset(types, type); if (rrset != null) { sr = new SetResponse(SetResponse.SUCCESSFUL); sr.addRRset(rrset); return sr; return new SetResponse(SetResponse.CNAME, rrset); } else { rrset = oneRRset(types, Type.DNAME); if (rrset != null) return new SetResponse(SetResponse.DNAME, rrset); return SetResponse.ofType(SetResponse.NXRRSET);
private final void addCacheNS(final Message response, final Cache cache, final Name name) { final SetResponse sr = cache.lookupRecords(name, Type.NS, Credibility.HINT); if (!sr.isDelegation()) return; final RRset nsRecords = sr.getNS(); @SuppressWarnings("unchecked") final Iterator<Record> it = nsRecords.rrs(); while (it.hasNext()) { final Record r = it.next(); response.addRecord(r, Section.AUTHORITY); } }
RRset[] rrs = response.answers(); if ((rrs != null) && (rrs.length > 0))
private void processResponse(Name name, SetResponse response) { if (response.isSuccessful()) { RRset [] rrsets = response.answers(); List l = new ArrayList(); Iterator it; answers = (Record []) l.toArray(new Record[l.size()]); done = true; } else if (response.isNXDOMAIN()) { nxdomain = true; doneCurrent = true; done = true; } else if (response.isNXRRSET()) { result = TYPE_NOT_FOUND; answers = null; done = true; } else if (response.isCNAME()) { CNAMERecord cname = response.getCNAME(); follow(cname.getTarget(), name); } else if (response.isDNAME()) { DNAMERecord dname = response.getDNAME(); try { follow(name.fromDNAME(dname), name); } else if (response.isDelegation()) {
private RRset [] findRecords(Name name, int type, int minCred) { SetResponse cr = lookupRecords(name, type, minCred); if (cr.isSuccessful()) return cr.answers(); else return null; }
return SetResponse.ofType(SetResponse.NXDOMAIN); RRset ns = oneRRset(types, Type.NS); if (ns != null) return new SetResponse(SetResponse.DELEGATION, ns); sr = new SetResponse(SetResponse.SUCCESSFUL); RRset [] sets = allRRsets(types); for (int i = 0; i < sets.length; i++) sr.addRRset(sets[i]); return sr; rrset = oneRRset(types, type); if (rrset != null) { sr = new SetResponse(SetResponse.SUCCESSFUL); sr.addRRset(rrset); return sr; return new SetResponse(SetResponse.CNAME, rrset); } else { rrset = oneRRset(types, Type.DNAME); if (rrset != null) return new SetResponse(SetResponse.DNAME, rrset); return SetResponse.ofType(SetResponse.NXRRSET);
private void addCacheNS(Message response, Cache cache, Name name) { final SetResponse sr = cache.lookupRecords(name, Type.NS, Credibility.HINT); if (!sr.isDelegation()) { return; } final RRset nsRecords = sr.getNS(); final Iterator<?> it = nsRecords.rrs(); while (it.hasNext()) { final Record r = (Record) it.next(); response.addRecord(r, Section.AUTHORITY); } }
static SetResponse ofType(int type) { switch (type) { case UNKNOWN: return unknown; case NXDOMAIN: return nxdomain; case NXRRSET: return nxrrset; case DELEGATION: case CNAME: case DNAME: case SUCCESSFUL: SetResponse sr = new SetResponse(); sr.type = type; sr.data = null; return sr; default: throw new IllegalArgumentException("invalid type"); } }
private void processResponse(Name name, SetResponse response) { if (response.isSuccessful()) { RRset [] rrsets = response.answers(); List l = new ArrayList(); Iterator it; answers = (Record []) l.toArray(new Record[l.size()]); done = true; } else if (response.isNXDOMAIN()) { nxdomain = true; doneCurrent = true; done = true; } else if (response.isNXRRSET()) { result = TYPE_NOT_FOUND; answers = null; done = true; } else if (response.isCNAME()) { CNAMERecord cname = response.getCNAME(); follow(cname.getTarget(), name); } else if (response.isDNAME()) { DNAMERecord dname = response.getDNAME(); Name newname = null; try { } else if (response.isDelegation()) {
private RRset [] findRecords(Name name, int type, int minCred) { SetResponse cr = lookupRecords(name, type, minCred); if (cr.isSuccessful()) return cr.answers(); else return null; }
return SetResponse.ofType(SetResponse.NXDOMAIN); RRset ns = oneRRset(types, Type.NS); if (ns != null) return new SetResponse(SetResponse.DELEGATION, ns); sr = new SetResponse(SetResponse.SUCCESSFUL); RRset [] sets = allRRsets(types); for (int i = 0; i < sets.length; i++) sr.addRRset(sets[i]); return sr; rrset = oneRRset(types, type); if (rrset != null) { sr = new SetResponse(SetResponse.SUCCESSFUL); sr.addRRset(rrset); return sr; return new SetResponse(SetResponse.CNAME, rrset); } else { rrset = oneRRset(types, Type.DNAME); if (rrset != null) return new SetResponse(SetResponse.DNAME, rrset); return SetResponse.ofType(SetResponse.NXRRSET);
static SetResponse ofType(int type) { switch (type) { case UNKNOWN: return unknown; case NXDOMAIN: return nxdomain; case NXRRSET: return nxrrset; case DELEGATION: case CNAME: case DNAME: case SUCCESSFUL: SetResponse sr = new SetResponse(); sr.type = type; sr.data = null; return sr; default: throw new IllegalArgumentException("invalid type"); } }