Changeset 1125
- Timestamp:
- 02/03/08 17:24:25 (10 months ago)
- Files:
-
- trunk/pdns/pdns/dnsgram.cc (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/pdns/pdns/dnsgram.cc
r1047 r1125 24 24 int64_t serverdiff = g_serverQuestions - g_serverResponses; 25 25 26 if(clientdiff > 0.01*g_clientQuestions) {26 if(clientdiff > 5 && clientdiff > 0.02*g_clientQuestions) { 27 27 char tmp[80]; 28 28 struct tm tm=*localtime_r(&tv.tv_sec, &tm); … … 43 43 } 44 44 45 if(serverdiff > 0.01*g_serverQuestions) {45 if(serverdiff > 5 && serverdiff > 0.02*g_serverQuestions) { 46 46 char tmp[80]; 47 47 struct tm tm=*localtime_r(&tv.tv_sec, &tm); … … 50 50 cout << tmp << ": Auth server dropped too many questions (" 51 51 << g_serverQuestions <<" vs " << g_serverResponses << "), diff: " <<serverdiff<<endl; 52 53 cout << tv.tv_sec<<endl;54 52 55 53 tm=*localtime_r(&g_lastanswerTime.tv_sec, &tm); … … 67 65 68 66 69 cerr << tv.tv_sec << " " <<g_clientQuestions<<" " << g_clientResponses<< " "<<g_serverQuestions<<" "<<g_serverResponses<<" "<<g_skipped<<endl;67 // cerr << tv.tv_sec << " " <<g_clientQuestions<<" " << g_clientResponses<< " "<<g_serverQuestions<<" "<<g_serverResponses<<" "<<g_skipped<<endl; 70 68 g_clientQuestions=g_clientResponses=g_serverQuestions=g_serverResponses=0; 71 69 g_skipped=0; … … 80 78 unsigned int parseErrors=0, totalQueries=0, skipped=0; 81 79 PcapPacketReader pr(argv[n]); 82 PcapPacketWriter pw(argv[n]+string(".out"), pr);80 // PcapPacketWriter pw(argv[n]+string(".out"), pr); 83 81 /* four sorts of packets: 84 82 "rd": question from a client pc … … 96 94 queries_t questions, answers; 97 95 98 unsigned int count = 50000;96 // unsigned int count = 50000; 99 97 100 98 map<pair<string, uint16_t>, int> counts; … … 118 116 } 119 117 120 if(pr.d_pheader.ts.tv_sec > 1176897290 && pr.d_pheader.ts.tv_sec < 1176897310 )121 pw.write();118 // if(pr.d_pheader.ts.tv_sec > 1176897290 && pr.d_pheader.ts.tv_sec < 1176897310 ) 119 // pw.write(); 122 120 123 121 if(mdp.d_header.rd && !mdp.d_header.qr) { … … 125 123 g_clientQuestions++; 126 124 totalQueries++; 125 counts[make_pair(mdp.d_qname, mdp.d_qtype)]++; 127 126 questions.insert(make_pair(mdp.d_qname, mdp.d_qtype)); 128 127 } … … 144 143 } 145 144 146 if(pr.d_pheader.ts.tv_sec - lastreport.tv_sec > 2) {145 if(pr.d_pheader.ts.tv_sec - lastreport.tv_sec > 5) { 147 146 makeReport(pr.d_pheader.ts); 148 147 lastreport = pr.d_pheader.ts; … … 169 168 cerr<<questions.size()<<" different rd questions, "<< answers.size()<<" different rd answers, diff: "<<diff.size()<<endl; 170 169 cerr<<skipped<<" skipped\n"; 170 171 172 cerr<<"Generating 'failed' file with failed queries and counts\n"; 171 173 ofstream failed("failed"); 172 174 for(diff_t::const_iterator i = diff.begin(); i != diff.end() ; ++i) { 173 failed << i->first << "\t" << i->second << "\t"<< counts[make_pair(i->first, i->second)]<<"\n";175 failed << i->first << "\t" << i->second << "\t"<< counts[make_pair(i->first, i->second)]<<"\n"; 174 176 } 175 177 … … 179 181 cerr<<diff.size()<<" answers w/o questions\n"; 180 182 183 cerr<<"Generating 'succeeded' file with failed queries and counts\n"; 181 184 ofstream succeeded("succeeded"); 182 185 for(queries_t::const_iterator i = answers.begin(); i != answers.end() ; ++i) { 183 succeeded << i->first << "\t" << i->second << "\n";186 succeeded << i->first << "\t" << i->second << counts[make_pair(i->first, i->second)]<<"\n"; 184 187 } 185 188 }