#include "dnswriter.hh"
#include "dnsrecords.hh"
#include "statbag.hh"
+#include "threadname.hh"
#include <netinet/tcp.h>
#include <boost/array.hpp>
#include <boost/program_options.hpp>
struct BenchQuery
{
BenchQuery(const std::string& qname_, uint16_t qtype_) : qname(qname_), qtype(qtype_), udpUsec(0), tcpUsec(0), answerSecond(0) {}
- BenchQuery(){}
+ BenchQuery(): qtype(0), udpUsec(0), tcpUsec(0), answerSecond(0) {}
DNSName qname;
uint16_t qtype;
uint32_t udpUsec, tcpUsec;
if(!g_onlyTCP) {
Socket udpsock(g_dest.sin4.sin_family, SOCK_DGRAM);
- udpsock.sendTo(string((char*)&*packet.begin(), (char*)&*packet.end()), g_dest);
+ udpsock.sendTo(string(packet.begin(), packet.end()), g_dest);
ComboAddress origin;
res = waitForData(udpsock.getHandle(), 0, 1000 * g_timeoutMsec);
if(res < 0)
q->udpUsec = makeUsec(now - tv);
tv=now;
- MOADNSParser mdp(reply);
+ MOADNSParser mdp(false, reply);
if(!mdp.d_header.tc)
return;
g_truncates++;
sock.connect(g_dest);
uint16_t len = htons(packet.size());
string tcppacket((char*)& len, 2);
- tcppacket.append((char*)&*packet.begin(), (char*)&*packet.end());
+ tcppacket.append(packet.begin(), packet.end());
sock.writen(tcppacket);
q->tcpUsec = makeUsec(now - tv);
q->answerSecond = now.tv_sec;
- MOADNSParser mdp(reply);
+ MOADNSParser mdp(false, reply);
// cout<<"Had correct TCP/IP response, "<<mdp.d_answers.size()<<" answers, aabit="<<mdp.d_header.aa<<endl;
if(mdp.d_header.aa)
g_authAnswers++;
static void* worker(void*)
{
+ setThreadName("dnstcpb/worker");
for(;;) {
unsigned int pos = g_pos++;
if(pos >= g_queries.size())
}
- pthread_t workers[numworkers];
+ std::vector<pthread_t> workers(numworkers);
FILE* fp;
if(!g_vm.count("file"))