auto nsec3 = std::dynamic_pointer_cast<NSEC3RecordContent>(r);
string h = hashQNameWithSalt(nsec3->d_salt, nsec3->d_iterations, qname);
+ // cerr<<"Salt length: "<<nsec3->d_salt.length()<<", iterations: "<<nsec3->d_iterations<<", hashed: "<<qname<<endl;
LOG("\tquery hash: "<<toBase32Hex(h)<<endl);
string beginHash=fromBase32Hex(v.first.first.getRawLabels()[0]);
if( (beginHash < h && h < nsec3->d_nexthash) ||
- (nsec3->d_nexthash > h && beginHash > nsec3->d_nexthash)) { //wrap
+ (nsec3->d_nexthash > h && beginHash > nsec3->d_nexthash) || //wrap
+ beginHash == nsec3->d_nexthash) // "we have only 1 NSEC3 record, LOL!"
+ {
LOG("Denies existence of DS!"<<endl);
return Insecure;
}