case RCode::ServFail:
if(t_servfailremotes) {
t_servfailremotes->push_back(remote);
- if(query) // packet cache
+ if(query && t_servfailqueryring) // packet cache
t_servfailqueryring->push_back(make_pair(*query, qtype));
}
g_stats.servFails++;
{
DNSComboWriter* dc=(DNSComboWriter *)p;
try {
- t_queryring->push_back(make_pair(dc->d_mdp.d_qname, dc->d_mdp.d_qtype));
+ if (t_queryring)
+ t_queryring->push_back(make_pair(dc->d_mdp.d_qname, dc->d_mdp.d_qtype));
uint32_t maxanswersize= dc->d_tcp ? 65535 : min((uint16_t) 512, g_udpTruncationThreshold);
EDNSOpts edo;
vector<query_t>* ret = new vector<query_t>();
if(!t_servfailqueryring)
return ret;
- ret->reserve(t_queryring->size());
+ ret->reserve(t_servfailqueryring->size());
for(const query_t& q : *t_servfailqueryring) {
ret->push_back(q);
}