]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
clang-tidy: pass function by ref
authorRosen Penev <rosenp@gmail.com>
Tue, 5 Dec 2023 20:23:56 +0000 (12:23 -0800)
committerRosen Penev <rosenp@gmail.com>
Tue, 9 Jan 2024 00:09:26 +0000 (16:09 -0800)
Found with performance-unnecessary-value-param
Found with performance-unnecessary-copy-initialization

Signed-off-by: Rosen Penev <rosenp@gmail.com>
modules/lmdbbackend/lmdbbackend.cc
modules/lmdbbackend/lmdbbackend.hh
pdns/dnswasher.cc
pdns/iputils.hh
pdns/json.cc
pdns/lua-record.cc
pdns/statnode.cc
pdns/statnode.hh
pdns/tcpiohandler.hh
pdns/webserver.cc

index 6b795654f7f94d0e62a1716c0bf91a89e563f7e3..e528d63295c2f35d61748ad0151de4031451b9a6 100644 (file)
@@ -1222,7 +1222,7 @@ std::shared_ptr<LMDBBackend::RecordsRWTransaction> LMDBBackend::getRecordsRWTran
   return ret;
 }
 
-std::shared_ptr<LMDBBackend::RecordsROTransaction> LMDBBackend::getRecordsROTransaction(uint32_t id, std::shared_ptr<LMDBBackend::RecordsRWTransaction> rwtxn)
+std::shared_ptr<LMDBBackend::RecordsROTransaction> LMDBBackend::getRecordsROTransaction(uint32_t id, const std::shared_ptr<LMDBBackend::RecordsRWTransaction>& rwtxn)
 {
   auto& shard = d_trecords[id % s_shards];
   if (!shard.env) {
@@ -1627,7 +1627,7 @@ bool LMDBBackend::getDomainInfo(const DNSName& domain, DomainInfo& di, bool gets
   return true;
 }
 
-int LMDBBackend::genChangeDomain(const DNSName& domain, std::function<void(DomainInfo&)> func)
+int LMDBBackend::genChangeDomain(const DNSName& domain, const std::function<void(DomainInfo&)>& func)
 {
   auto txn = d_tdomains->getRWTransaction();
 
@@ -1641,7 +1641,7 @@ int LMDBBackend::genChangeDomain(const DNSName& domain, std::function<void(Domai
   return true;
 }
 
-int LMDBBackend::genChangeDomain(uint32_t id, std::function<void(DomainInfo&)> func)
+int LMDBBackend::genChangeDomain(uint32_t id, const std::function<void(DomainInfo&)>& func)
 {
   DomainInfo di;
 
index 6bef1078347b35829c93b9cf96c47df912d8da06..40f18f8fb3bd9df2e26edbeac894665000b6c4b3 100644 (file)
@@ -305,9 +305,9 @@ private:
   shared_ptr<RecordsROTransaction> d_rotxn; // for lookup and list
   shared_ptr<RecordsRWTransaction> d_rwtxn; // for feedrecord within begin/aborttransaction
   std::shared_ptr<RecordsRWTransaction> getRecordsRWTransaction(uint32_t id);
-  std::shared_ptr<RecordsROTransaction> getRecordsROTransaction(uint32_t id, std::shared_ptr<LMDBBackend::RecordsRWTransaction> rwtxn = nullptr);
-  int genChangeDomain(const DNSName& domain, std::function<void(DomainInfo&)> func);
-  int genChangeDomain(uint32_t id, std::function<void(DomainInfo&)> func);
+  std::shared_ptr<RecordsROTransaction> getRecordsROTransaction(uint32_t id, const std::shared_ptr<LMDBBackend::RecordsRWTransaction>& rwtxn = nullptr);
+  int genChangeDomain(const DNSName& domain, const std::function<void(DomainInfo&)>& func);
+  int genChangeDomain(uint32_t id, const std::function<void(DomainInfo&)>& func);
   void deleteDomainRecords(RecordsRWTransaction& txn, uint32_t domain_id, uint16_t qtype = QType::ANY);
 
   void getAllDomainsFiltered(vector<DomainInfo>* domains, const std::function<bool(DomainInfo&)>& allow);
index a155305324e752e0b7cec2d6d5e857e828f09f1b..fcb844d1d582ec369933765696a98550f65daedd 100644 (file)
@@ -127,7 +127,7 @@ public:
     }
   }
 
-  static std::unique_ptr<IPObfuscator> make(std::string key, bool decrypt)
+  static std::unique_ptr<IPObfuscator> make(const std::string& key, bool decrypt)
   {
     return std::make_unique<IPCipherObfuscator>(key, decrypt);
   }
index 7e6a392105fd0355a00ca01c49d275ffa90ff3f1..4ef0b8f764a3924b74e8d2f2c2da94c3c8f3bd3a 100644 (file)
@@ -1517,7 +1517,8 @@ public:
     d_addr.sin4.sin_port = 0; // this guarantees d_network compares identical
   }
 
-  AddressAndPortRange(ComboAddress ca, uint8_t addrMask, uint8_t portMask = 0): d_addr(std::move(ca)), d_addrMask(addrMask), d_portMask(portMask)
+  AddressAndPortRange(ComboAddress ca, uint8_t addrMask, uint8_t portMask = 0) :
+    d_addr(ca), d_addrMask(addrMask), d_portMask(portMask)
   {
     if (!d_addr.isIPv4()) {
       d_portMask = 0;
index 285a953aefcbfc5cb1e7d9955923af60ea9216bc..12831a750bac494d2f9fd0a3f2a691d97e169239 100644 (file)
@@ -30,21 +30,23 @@ using json11::Json;
 
 static inline int intFromJsonInternal(const Json& container, const std::string& key, const bool have_default, const int default_value)
 {
-  auto val = container[key];
+  const auto& val = container[key];
   if (val.is_number()) {
     return val.int_value();
-  } else if (val.is_string()) {
+  }
+
+  if (val.is_string()) {
     try {
       return std::stoi(val.string_value());
     } catch (std::out_of_range&) {
       throw JsonException("Key '" + string(key) + "' is out of range");
     }
-  } else {
-    if (have_default) {
-      return default_value;
-    }
-    throw JsonException("Key '" + string(key) + "' not an Integer or not present");
   }
+
+  if (have_default) {
+    return default_value;
+  }
+  throw JsonException("Key '" + string(key) + "' not an Integer or not present");
 }
 
 int intFromJson(const Json& container, const std::string& key)
@@ -78,21 +80,23 @@ unsigned int uintFromJson(const Json& container, const std::string& key, const u
 
 static inline double doubleFromJsonInternal(const Json& container, const std::string& key, const bool have_default, const double default_value)
 {
-  auto val = container[key];
+  const auto& val = container[key];
   if (val.is_number()) {
     return val.number_value();
-  } else if (val.is_string()) {
+  }
+
+  if (val.is_string()) {
     try {
       return std::stod(val.string_value());
     } catch (std::out_of_range&) {
       throw JsonException("Value for key '" + string(key) + "' is out of range");
     }
-  } else {
-    if (have_default) {
-      return default_value;
-    }
-    throw JsonException("Key '" + string(key) + "' not an Integer or not present");
   }
+
+  if (have_default) {
+    return default_value;
+  }
+  throw JsonException("Key '" + string(key) + "' not an Integer or not present");
 }
 
 double doubleFromJson(const Json& container, const std::string& key)
@@ -107,17 +111,16 @@ double doubleFromJson(const Json& container, const std::string& key, const doubl
 
 string stringFromJson(const Json& container, const std::string &key)
 {
-  const Json val = container[key];
+  const auto& val = container[key];
   if (val.is_string()) {
     return val.string_value();
-  } else {
-    throw JsonException("Key '" + string(key) + "' not present or not a String");
   }
+  throw JsonException("Key '" + string(key) + "' not present or not a String");
 }
 
 static inline bool boolFromJsonInternal(const Json& container, const std::string& key, const bool have_default, const bool default_value)
 {
-  auto val = container[key];
+  const auto& val = container[key];
   if (val.is_bool()) {
     return val.bool_value();
   }
index 4a9b8861ae0a1aab24690c1a69512d2f096ad462..6ce7da6d2a30e8844a5bc97ca22b9f05de66b6bf 100644 (file)
@@ -616,7 +616,8 @@ typedef struct AuthLuaRecordContext
 
 static thread_local unique_ptr<lua_record_ctx_t> s_lua_record_ctx;
 
-static vector<string> genericIfUp(const boost::variant<iplist_t, ipunitlist_t>& ips, boost::optional<opts_t> options, std::function<bool(const ComboAddress&, const opts_t&)> upcheckf, uint16_t port = 0) {
+static vector<string> genericIfUp(const boost::variant<iplist_t, ipunitlist_t>& ips, boost::optional<opts_t> options, const std::function<bool(const ComboAddress&, const opts_t&)>& upcheckf, uint16_t port = 0)
+{
   vector<vector<ComboAddress> > candidates;
   opts_t opts;
   if(options)
@@ -894,7 +895,7 @@ static void setupLuaRecords(LuaContext& lua)
       auto checker = [](const ComboAddress& addr, const opts_t& opts) {
         return g_up.isUp(addr, opts);
       };
-      return genericIfUp(ips, std::move(options), checker, port);
+      return genericIfUp(ips, options, checker, port);
     });
 
   lua.writeFunction("ifurlextup", [](const vector<pair<int, opts_t> >& ipurls, boost::optional<opts_t> options) {
index a2b493496edbe8a51b716f0014b254c0372a6b74..898c221094da6a07c9f4cec97e823645b3fc0ba5 100644 (file)
@@ -35,8 +35,7 @@ StatNode::Stat StatNode::print(unsigned int depth, Stat newstat, bool silent) co
   return newstat;
 }
 
-
-void StatNode::visit(visitor_t visitor, Stat &newstat, unsigned int depth) const
+void StatNode::visit(const visitor_t& visitor, Stat& newstat, unsigned int depth) const
 {
   Stat childstat(s);
 
@@ -49,8 +48,7 @@ void StatNode::visit(visitor_t visitor, Stat &newstat, unsigned int depth) const
   newstat += childstat;
 }
 
-
-void StatNode::submit(const DNSName& domain, int rcode, unsigned int bytes, bool hit, boost::optional<const ComboAddress&> remote)
+void StatNode::submit(const DNSName& domain, int rcode, unsigned int bytes, bool hit, const boost::optional<const ComboAddress&>& remote)
 {
   //  cerr<<"FIRST submit called on '"<<domain<<"'"<<endl;
   std::vector<string> tmp = domain.getRawLabels();
@@ -69,7 +67,7 @@ void StatNode::submit(const DNSName& domain, int rcode, unsigned int bytes, bool
    www.powerdns.com. 
 */
 
-void StatNode::submit(std::vector<string>::const_iterator end, std::vector<string>::const_iterator begin, const std::string& domain, int rcode, unsigned int bytes, boost::optional<const ComboAddress&> remote, unsigned int count, bool hit)
+void StatNode::submit(std::vector<string>::const_iterator end, std::vector<string>::const_iterator begin, const std::string& domain, int rcode, unsigned int bytes, const boost::optional<const ComboAddress&>& remote, unsigned int count, bool hit)
 {
   //  cerr<<"Submit called for domain='"<<domain<<"': ";
   //  for(const std::string& n :  labels) 
index 6748c3509c0afaa13e2a82b1eb6285fc1dc6be34..18c17c20640a9cfa5580285483883fc6c2c625cb 100644 (file)
@@ -65,9 +65,9 @@ public:
   std::string fullname;
   uint8_t labelsCount{0};
 
-  void submit(const DNSName& domain, int rcode, unsigned int bytes, bool hit, boost::optional<const ComboAddress&> remote);
+  void submit(const DNSName& domain, int rcode, unsigned int bytes, bool hit, const boost::optional<const ComboAddress&>& remote);
   Stat print(unsigned int depth=0, Stat newstat=Stat(), bool silent=false) const;
-  void visit(visitor_t visitor, Stat& newstat, unsigned int depth=0) const;
+  void visit(const visitor_t& visitor, Stat& newstat, unsigned int depth = 0) const;
   bool empty() const
   {
     return children.empty() && s.remotes.empty();
@@ -75,5 +75,5 @@ public:
   children_t children;
 
 private:
-  void submit(std::vector<string>::const_iterator end, std::vector<string>::const_iterator begin, const std::string& domain, int rcode, unsigned int bytes, boost::optional<const ComboAddress&> remote, unsigned int count, bool hit);
+  void submit(std::vector<string>::const_iterator end, std::vector<string>::const_iterator begin, const std::string& domain, int rcode, unsigned int bytes, const boost::optional<const ComboAddress&>& remote, unsigned int count, bool hit);
 };
index 9e0dfdf5aa8d42a17634f40a8e6217f351f7c242..058d10443b713840304a24e37b87c05f9f5004e7 100644 (file)
@@ -232,15 +232,16 @@ protected:
 class TCPIOHandler
 {
 public:
-
-  TCPIOHandler(const std::string& host, bool hostIsAddr, int socket, const struct timeval& timeout, std::shared_ptr<TLSCtx> ctx): d_socket(socket)
+  TCPIOHandler(const std::string& host, bool hostIsAddr, int socket, const struct timeval& timeout, const std::shared_ptr<TLSCtx>& ctx) :
+    d_socket(socket)
   {
     if (ctx) {
       d_conn = ctx->getClientConnection(host, hostIsAddr, d_socket, timeout);
     }
   }
 
-  TCPIOHandler(int socket, const struct timeval& timeout, std::shared_ptr<TLSCtx> ctx, time_t now): d_socket(socket)
+  TCPIOHandler(int socket, const struct timeval& timeout, const std::shared_ptr<TLSCtx>& ctx, time_t now) :
+    d_socket(socket)
   {
     if (ctx) {
       d_conn = ctx->getConnection(d_socket, timeout, now);
index 95fee8aebda51a1cb8734f77a5564d8d1561a388..ec4b09f5f94a37eb8d61c1c159f79cfe05de1aa1 100644 (file)
@@ -222,7 +222,8 @@ void WebServer::registerWebHandler(const string& url, const HandlerFunction& han
   registerBareHandler(url, f, method);
 }
 
-static void *WebServerConnectionThreadStart(const WebServer* webServer, std::shared_ptr<Socket> client) {
+static void* WebServerConnectionThreadStart(const WebServer* webServer, const std::shared_ptr<Socket>& client)
+{
   setThreadName("rec/webhndlr");
   const std::string msg = "Exception while serving a connection in main webserver thread";
   try {