isc::dns::ConstRRsetPtr rrset,
FindResultFlags flags = RESULT_DEFAULT)
{
- ConstRRsetPtr rr = (rrset ? stripRRsigs(rrset, options) : rrset);
+ ConstRRsetPtr rr = stripRRsigs(rrset, options);
return (ZoneFinderContextPtr(
new Context(*this, options,
ResultContext(code, rr, flags))));
/// requested.
static isc::dns::ConstRRsetPtr
stripRRsigs(isc::dns::ConstRRsetPtr rr, const FindOptions options) {
- isc::dns::ConstRRsetPtr sig_rrset = rr->getRRsig();
- if (sig_rrset &&
- ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
- isc::dns::RRsetPtr result_base(new isc::dns::RRset(rr->getName(),
- rr->getClass(),
- rr->getType(),
- rr->getTTL()));
- for (isc::dns::RdataIteratorPtr i(rr->getRdataIterator());
- !i->isLast();
- i->next()) {
- result_base->addRdata(i->getCurrent());
- }
+ if (rr) {
+ isc::dns::ConstRRsetPtr sig_rrset = rr->getRRsig();
+ if (sig_rrset &&
+ ((options & ZoneFinder::FIND_DNSSEC) == 0)) {
+ isc::dns::RRsetPtr result_base
+ (new isc::dns::RRset(rr->getName(),
+ rr->getClass(),
+ rr->getType(),
+ rr->getTTL()));
+ for (isc::dns::RdataIteratorPtr i(rr->getRdataIterator());
+ !i->isLast();
+ i->next()) {
+ result_base->addRdata(i->getCurrent());
+ }
- return(result_base);
- } else {
- return(rr);
+ return (result_base);
+ }
}
+
+ return (rr);
}
/// \brief Context of the result of a find() call.