return 0;
}
- haveSomething=getEntryLocked(p->qdomain, p->qtype, PacketCache::PACKETCACHE, value, -1, packetMeritsRecursion, p->getMaxReplyLen(), p->d_dnssecOk);
+ uint16_t maxReplyLen = p->d_tcp ? 0xffff : p->getMaxReplyLen();
+ haveSomething=getEntryLocked(p->qdomain, p->qtype, PacketCache::PACKETCACHE, value, -1, packetMeritsRecursion, maxReplyLen, p->d_dnssecOk);
}
if(haveSomething) {
(*d_statnumhit)++;
return;
bool packetMeritsRecursion=d_doRecursion && q->d.rd;
-
+ uint16_t maxReplyLen = q->d_tcp ? 0xffff : q->getMaxReplyLen();
insert(q->qdomain, q->qtype, PacketCache::PACKETCACHE, r->getString(), packetMeritsRecursion ? d_recursivettl : d_ttl, -1, packetMeritsRecursion,
- q->getMaxReplyLen(), q->d_dnssecOk);
+ maxReplyLen, q->d_dnssecOk);
}
// universal key appears to be: qname, qtype, kind (packet, query cache), optionally zoneid, meritsRecursion
if(!ttl)
return;
- // cerr<<"Inserting qname '"<<qname<<"', cet: "<<(int)cet<<", value: '"<< (cet ? value : "PACKET") <<"', qtype: "<<qtype.getName()<<", ttl: "<<ttl<<endl;
+ //cerr<<"Inserting qname '"<<qname<<"', cet: "<<(int)cet<<", value: '"<< (cet ? value : "PACKET") <<"', qtype: "<<qtype.getName()<<", ttl: "<<ttl<<", maxreplylen: "<<maxReplyLen<<endl;
CacheEntry val;
val.ttd=time(0)+ttl;
val.qname=qname;
unsigned int maxReplyLen, bool dnssecOK)
{
uint16_t qt = qtype.getCode();
-
+ //cerr<<"Lookup for maxReplyLen: "<<maxReplyLen<<endl;
cmap_t::const_iterator i=d_map.find(tie(qname, qt, cet, zoneID, meritsRecursion, maxReplyLen, dnssecOK));
time_t now=time(0);
bool ret=(i!=d_map.end() && i->ttd > now);
shared_ptr<DNSPacket> reply;
shared_ptr<DNSPacket> cached= shared_ptr<DNSPacket>(new DNSPacket);
if(logDNSDetails)
- L << Logger::Notice<<"Remote "<< packet->remote.toString() <<" wants '" << packet->qdomain<<"|"<<packet->qtype.getName() <<
+ L << Logger::Notice<<"TCP Remote "<< packet->remote.toString() <<" wants '" << packet->qdomain<<"|"<<packet->qtype.getName() <<
"', do = " <<packet->d_dnssecOk <<", bufsize = "<< packet->getMaxReplyLen()<<": ";