Changeset 1498

Show
Ignore:
Timestamp:
01/11/10 02:20:43 (3 years ago)
Author:
ahu
Message:

update statistics for answers served from the packet cache

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pdns/pdns/pdns_recursor.cc

    r1497 r1498  
    469469void handleRunningTCPQuestion(int fd, FDMultiplexer::funcparam_t& var); 
    470470 
     471void updateRcodeStats(int res) 
     472{ 
     473  switch(res) { 
     474  case RCode::ServFail: 
     475    g_stats.servFails++; 
     476    break; 
     477  case RCode::NXDomain: 
     478    g_stats.nxDomains++; 
     479    break; 
     480  case RCode::NoError: 
     481    g_stats.noErrors++; 
     482    break; 
     483  } 
     484} 
     485 
    471486void startDoResolve(void *p) 
    472487{ 
     
    519534    else { 
    520535      pw.getHeader()->rcode=res; 
    521       switch(res) { 
    522       case RCode::ServFail: 
    523         g_stats.servFails++; 
    524         break; 
    525       case RCode::NXDomain: 
    526         g_stats.nxDomains++; 
    527         break; 
    528       case RCode::NoError: 
    529         g_stats.noErrors++; 
    530         break; 
    531       } 
    532        
    533  
     536      updateRcodeStats(res); 
     537     
    534538      if(ret.size()) { 
    535539        shuffle(ret); 
     
    813817            SyncRes::s_queries++; 
    814818            sendto(fd, response.c_str(), response.length(), 0, (struct sockaddr*) &fromaddr, fromaddr.getSocklen()); 
     819            if(response.length() >= sizeof(struct dnsheader)) 
     820              updateRcodeStats(((struct dnsheader*)response.c_str())->rcode); 
    815821            return; 
    816822          }