]> granicus.if.org Git - pdns/commitdiff
ixfrdist: wrap WebServer in a unique_ptr
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 16 Nov 2018 12:38:45 +0000 (13:38 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 16 Nov 2018 12:38:45 +0000 (13:38 +0100)
pdns/ixfrdist-web.cc
pdns/ixfrdist-web.hh
pdns/ixfrdist.cc

index 93f610aa7cf7ed3ed2a7bef55d94d71bdfd19b09..751bb716fa5b9f591fc28c4a5845c4d87f0c4035 100644 (file)
@@ -28,8 +28,7 @@
 string doGetStats();
 
 IXFRDistWebServer::IXFRDistWebServer(const ComboAddress &listenAddress, const NetmaskGroup &acl) {
-  // TODO wrap in smart pointer
-  d_ws = new WebServer(listenAddress.toString() , listenAddress.getPort());
+  d_ws = std::unique_ptr<WebServer>(new WebServer(listenAddress.toString(), listenAddress.getPort()));
   d_ws->setACL(acl);
   d_ws->registerWebHandler("/metrics", boost::bind(&IXFRDistWebServer::getMetrics, this, _1, _2));
   d_ws->bind();
index 7b2871453f461006da76b94fb2df4edcd1ce7c50..580e976344332b3d0a577bf89c36ccc8541de766 100644 (file)
@@ -30,7 +30,7 @@ class IXFRDistWebServer
     void go();
 
   private:
-    WebServer *d_ws;
+    std::unique_ptr<WebServer> d_ws;
 
     // All endpoints
     void getMetrics(HttpRequest* req, HttpResponse* resp);
index 41d0b152fc80ea83ac4a06725e6790edee35e112..e37fb356cfaf2ae35a3b5228b3f7a5981d19ef57 100644 (file)
@@ -1255,8 +1255,8 @@ int main(int argc, char** argv) {
       }
     }
 
-    auto ws = IXFRDistWebServer(config["webserver-address"].as<ComboAddress>(), wsACL);
-    std::thread (&IXFRDistWebServer::go, ws).detach();
+    // Launch the webserver!
+    std::thread(&IXFRDistWebServer::go, IXFRDistWebServer(config["webserver-address"].as<ComboAddress>(), wsACL)).detach();
   }
 
   int newuid = 0;