size_t wirelength() const; //!< Number of total bytes in the name
bool empty() const { return d_storage.empty(); }
bool isRoot() const { return d_storage.size()==1 && d_storage[0]==0; }
+ bool hasLabels() const { return !empty() && !isRoot(); }
void clear() { d_storage.clear(); }
void trimToLabels(unsigned int);
size_t hash(size_t init=0) const
dsk.getPreRRSIGs(ueber, outsigned, origTTL, packet); // does it all
}
else {
- if(getRRSIGsForRRSET(dsk, signer, wildcardname.countLabels() != 0 ? wildcardname : signQName, signQType, signTTL, toSign, rrcs) < 0) {
+ if(getRRSIGsForRRSET(dsk, signer, wildcardname.hasLabels() ? wildcardname : signQName, signQType, signTTL, toSign, rrcs) < 0) {
// cerr<<"Error signing a record!"<<endl;
return;
}
if(!ret.empty()) {
return;
}
- if(subdomain.countLabels() != 0) {
- prefix.appendRawLabel(subdomain.getRawLabels()[0]); // XXX DNSName pain this feels wrong
+ if(subdomain.hasLabels()) {
+ prefix.appendRawLabel(subdomain.getRawLabel(0)); // XXX DNSName pain this feels wrong
}
if(subdomain == d_sd.qname()) { // stop at SOA
break;
bool PacketHandler::tryAuthSignal(DNSPacket& p, std::unique_ptr<DNSPacket>& r, DNSName &target) // NOLINT(readability-identifier-length)
{
DLOG(g_log<<Logger::Warning<<"Let's try authenticated DNSSEC bootstrapping (RFC 9615) ..."<<endl);
- if(d_sd.zonename.operator const DNSName&().countLabels() == 0 || !pdns_iequals(d_sd.zonename.operator const DNSName&().getRawLabel(0), "_signal") || !d_dk.isSignalingZone(d_sd.zonename)) {
+ if(!d_sd.zonename.operator const DNSName&().hasLabels() || !pdns_iequals(d_sd.zonename.operator const DNSName&().getRawLabel(0), "_signal") || !d_dk.isSignalingZone(d_sd.zonename)) {
return false;
}
}
// Check for prefix mismatch
- if(target.countLabels() == 0 || !pdns_iequals(target.getRawLabel(0), "_dsboot")) {
+ if(!target.hasLabels() || !pdns_iequals(target.getRawLabel(0), "_dsboot")) {
makeNOError(p, r, target, DNSName(), 0); // could be ENT
return true;
}
continue;
}
- if (isSecure && isOptOut && (rr.qname.countLabels() != 0 && rr.qname.getRawLabels()[0] == "*")) {
+ if (isSecure && isOptOut && (rr.qname.hasLabels() && rr.qname.getRawLabel(0) == "*")) {
cout<<"[Warning] wildcard record '"<<rr.qname<<" IN " <<rr.qtype.toString()<<" "<<rr.content<<"' is insecure"<<endl;
cout<<"[Info] Wildcard records in opt-out zones are insecure. Disable the opt-out flag for this zone to avoid this warning. Command: pdnsutil set-nsec3 "<<zone<<endl;
numwarnings++;
ZoneName zone(cmds.at(0));
- if(zone.operator const DNSName&().countLabels() == 0 || !pdns_iequals(zone.operator const DNSName&().getRawLabel(0), "_signal")) {
+ if(!zone.operator const DNSName&().hasLabels() || !pdns_iequals(zone.operator const DNSName&().getRawLabel(0), "_signal")) {
cerr << "Signaling zone's first label must be '_signal': " << zone << endl;
return 1;
}
return false;
}
- const string beginHash = fromBase32Hex(record.d_name.getRawLabels()[0]);
+ const string beginHash = fromBase32Hex(record.d_name.getRawLabel(0));
if (beginHash == hash) {
return !nsec3->isSet(QType::NS);
}
return false;
}
VLOG(log, closestEncloser << ":\tWildcard hash: "<<toBase32Hex(hash)<<endl);
- string beginHash=fromBase32Hex(validset.first.first.getRawLabels()[0]);
+ string beginHash=fromBase32Hex(validset.first.first.getRawLabel(0));
VLOG(log, closestEncloser << ":\tNSEC3 hash: "<<toBase32Hex(beginHash)<<" -> "<<toBase32Hex(nsec3->d_nexthash)<<endl);
if (beginHash == hash) {
nsec3Seen = true;
VLOG(log, qname << ":\tquery hash: "<<toBase32Hex(hash)<<endl);
- string beginHash = fromBase32Hex(hashedOwner.getRawLabels()[0]);
+ string beginHash = fromBase32Hex(hashedOwner.getRawLabel(0));
// If the name exists, check if the qtype is denied
if (beginHash == hash) {
return dState::INSECURE;
}
- string beginHash=fromBase32Hex(validset.first.first.getRawLabels()[0]);
+ string beginHash=fromBase32Hex(validset.first.first.getRawLabel(0));
VLOG(log, qname << ": Comparing "<<toBase32Hex(hash)<<" ("<<closestEncloser<<") against "<<toBase32Hex(beginHash)<<endl);
if (beginHash == hash) {
continue;
}
- string beginHash=fromBase32Hex(validset.first.first.getRawLabels()[0]);
+ string beginHash=fromBase32Hex(validset.first.first.getRawLabel(0));
VLOG(log, qname << ": Comparing "<<toBase32Hex(hash)<<" against "<<toBase32Hex(beginHash)<<" -> "<<toBase32Hex(nsec3->d_nexthash)<<endl);
if (isCoveredByNSEC3Hash(hash, beginHash, nsec3->d_nexthash)) {