From: Pieter Lexis Date: Mon, 12 Nov 2018 14:40:46 +0000 (+0100) Subject: webserver: Refactor ACL into a class var X-Git-Tag: auth-4.2.0-alpha1~31^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0010aefafa672f7db85a698c13741da9e2209eb5;p=thirdparty%2Fpdns.git webserver: Refactor ACL into a class var --- diff --git a/pdns/webserver.cc b/pdns/webserver.cc index d375dd2a28..64b423e1b2 100644 --- a/pdns/webserver.cc +++ b/pdns/webserver.cc @@ -33,7 +33,6 @@ #include "dns.hh" #include "base64.hh" #include "json.hh" -#include "arguments.hh" #include json11::Json HttpRequest::json() @@ -343,22 +342,19 @@ void WebServer::go() if(!d_server) return; try { - NetmaskGroup acl; - acl.toMasks(::arg()["webserver-allow-from"]); - while(true) { try { auto client = d_server->accept(); if (!client) { continue; } - if (client->acl(acl)) { + if (client->acl(d_acl)) { std::thread webHandler(WebServerConnectionThreadStart, this, client); webHandler.detach(); } else { ComboAddress remote; if (client->getRemote(remote)) - g_log<setApiKey(arg()["api-key"]); d_ws->setPassword(arg()["webserver-password"]); + + NetmaskGroup acl; + acl.toMasks(::arg()["webserver-allow-from"]); + d_ws->setACL(acl); + d_ws->bind(); } } diff --git a/pdns/ws-recursor.cc b/pdns/ws-recursor.cc index 012ce3c9b2..6d262656b5 100644 --- a/pdns/ws-recursor.cc +++ b/pdns/ws-recursor.cc @@ -452,6 +452,11 @@ RecursorWebServer::RecursorWebServer(FDMultiplexer* fdm) d_ws = new AsyncWebServer(fdm, arg()["webserver-address"], arg().asNum("webserver-port")); d_ws->setApiKey(arg()["api-key"]); d_ws->setPassword(arg()["webserver-password"]); + + NetmaskGroup acl; + acl.toMasks(::arg()["webserver-allow-from"]); + d_ws->setACL(acl); + d_ws->bind(); // legacy dispatch