auto& targetInfo = s_threadInfos[target];
if(!targetInfo.isWorker) {
g_log<<Logger::Error<<"distributeAsyncFunction() tried to assign a query to a non-worker thread"<<endl;
- exit(1);
+ _exit(1);
}
const auto& tps = targetInfo.pipes;
{
if (!isDistributorThread()) {
g_log<<Logger::Error<<"distributeAsyncFunction() has been called by a worker ("<<t_id<<")"<<endl;
- exit(1);
+ _exit(1);
}
unsigned int hash = hashQuestion(packet.c_str(), packet.length(), g_disthashseed);
{
if (!isHandlerThread()) {
g_log<<Logger::Error<<"broadcastAccFunction has been called by a worker ("<<t_id<<")"<<endl;
- exit(1);
+ _exit(1);
}
unsigned int n = 0;
}
}
g_log<<Logger::Error<<"No working multiplexer found!"<<endl;
- exit(1);
+ _exit(1);
}
try {
rws = new RecursorWebServer(t_fdm);
}
- catch(PDNSException &e) {
- g_log<<Logger::Error<<"Exception: "<<e.reason<<endl;
- exit(99);
+ catch (const PDNSException &e) {
+ g_log<<Logger::Error<<"Unable to start the internal web server: "<<e.reason<<endl;
+ _exit(99);
}
}
g_log<<Logger::Info<<"Enabled '"<< t_fdm->getName() << "' multiplexer"<<endl;
{
registerAllStats();
- d_ws = std::unique_ptr<AsyncWebServer>(new AsyncWebServer(fdm, arg()["webserver-address"], arg().asNum("webserver-port")));
+ d_ws = make_unique<AsyncWebServer>(fdm, arg()["webserver-address"], arg().asNum("webserver-port"));
+
d_ws->setApiKey(arg()["api-key"]);
d_ws->setPassword(arg()["webserver-password"]);
d_ws->setLogLevel(arg()["webserver-loglevel"]);
d_ws->registerApiHandler("/api/v1/servers", &apiServer);
d_ws->registerApiHandler("/api", &apiDiscovery);
- for(const auto& u : g_urlmap)
+ for (const auto& u : g_urlmap) {
d_ws->registerWebHandler("/"+u.first, serveStuff);
+ }
+
d_ws->registerWebHandler("/", serveStuff);
d_ws->registerWebHandler("/metrics", prometheusMetrics);
d_ws->go();