#include "dnspacket.hh"
#include "logger.hh"
#include "statbag.hh"
+#include "threadname.hh"
extern StatBag S;
}
-DynListener::DynListener(const ComboAddress& local)
+DynListener::DynListener(const ComboAddress& local) :
+ d_tcp(true)
{
listenOnTCP(local);
- d_tcp=true;
- d_client=-1;
- d_tid=0;
- d_ppid=0;
}
DynListener::DynListener(const string &progname)
{
- d_client=-1;
- d_tid=0;
- d_ppid=0;
- d_s=-1;
if(!progname.empty()) {
string socketname = ::arg()["socket-dir"];
}
else
d_nonlocal=false; // we listen on stdin!
- d_tcp=false;
}
void DynListener::go()
void *DynListener::theListenerHelper(void *p)
{
+ setThreadName("pdns/ctrlListen");
DynListener *us=static_cast<DynListener *>(p);
us->theListener();
g_log<<Logger::Error<<"Control listener aborted, please file a bug!"<<endl;
vector<char> mesg;
mesg.resize(1024000);
- int len;
+ ssize_t len;
ComboAddress remote;
socklen_t remlen=remote.getSocklen();
else if(len==0)
throw PDNSException("Guardian exited - going down as well");
- if(len == (int)mesg.size())
+ if(static_cast<size_t>(len) == mesg.size())
throw PDNSException("Line on control console was too long");
mesg[len]=0;
}
-
+
return &mesg[0];
}