]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Delint dnsdist-lua-bindings-dnscrypt.cc 14205/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 21 May 2024 09:02:48 +0000 (11:02 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 21 May 2024 09:02:48 +0000 (11:02 +0200)
pdns/dnsdistdist/dnsdist-lua-bindings-dnscrypt.cc

index 9c7775f19fc4578389b7132aff5a9e5e29b19797..65eba9e32b8afa1d33b153837f5b7266818c75ad 100644 (file)
@@ -35,34 +35,34 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
   luaCtx.registerFunction("markInactive", &DNSCryptContext::markInactive);
   luaCtx.registerFunction("reloadCertificates", &DNSCryptContext::reloadCertificates);
   luaCtx.registerFunction("removeInactiveCertificate", &DNSCryptContext::removeInactiveCertificate);
-  luaCtx.registerFunction<void (std::shared_ptr<DNSCryptContext>::*)(const std::string& certFile, const std::string& keyFile, boost::optional<bool> active)>("loadNewCertificate", [](std::shared_ptr<DNSCryptContext> ctx, const std::string& certFile, const std::string& keyFile, boost::optional<bool> active) {
+  luaCtx.registerFunction<void (std::shared_ptr<DNSCryptContext>::*)(const std::string& certFile, const std::string& keyFile, boost::optional<bool> active)>("loadNewCertificate", [](std::shared_ptr<DNSCryptContext>& ctx, const std::string& certFile, const std::string& keyFile, boost::optional<bool> active) {
     if (ctx == nullptr) {
       throw std::runtime_error("DNSCryptContext::loadNewCertificate() called on a nil value");
     }
 
     ctx->loadNewCertificate(certFile, keyFile, active ? *active : true);
   });
-  luaCtx.registerFunction<void (std::shared_ptr<DNSCryptContext>::*)(const DNSCryptCert& newCert, const DNSCryptPrivateKey& newKey, boost::optional<bool> active)>("addNewCertificate", [](std::shared_ptr<DNSCryptContext> ctx, const DNSCryptCert& newCert, const DNSCryptPrivateKey& newKey, boost::optional<bool> active) {
+  luaCtx.registerFunction<void (std::shared_ptr<DNSCryptContext>::*)(const DNSCryptCert& newCert, const DNSCryptPrivateKey& newKey, boost::optional<bool> active)>("addNewCertificate", [](std::shared_ptr<DNSCryptContext>& ctx, const DNSCryptCert& newCert, const DNSCryptPrivateKey& newKey, boost::optional<bool> active) {
     if (ctx == nullptr) {
       throw std::runtime_error("DNSCryptContext::addNewCertificate() called on a nil value");
     }
 
     ctx->addNewCertificate(newCert, newKey, active ? *active : true);
   });
-  luaCtx.registerFunction<LuaArray<std::shared_ptr<DNSCryptCertificatePair>> (std::shared_ptr<DNSCryptContext>::*)()>("getCertificatePairs", [](std::shared_ptr<DNSCryptContext> ctx) {
+  luaCtx.registerFunction<LuaArray<std::shared_ptr<DNSCryptCertificatePair>> (std::shared_ptr<DNSCryptContext>::*)()>("getCertificatePairs", [](std::shared_ptr<DNSCryptContext>& ctx) {
     LuaArray<std::shared_ptr<DNSCryptCertificatePair>> result;
 
     if (ctx != nullptr) {
       size_t idx = 1;
       for (const auto& pair : ctx->getCertificates()) {
-        result.push_back({idx++, pair});
+        result.emplace_back(idx++, pair);
       }
     }
 
     return result;
   });
 
-  luaCtx.registerFunction<std::shared_ptr<DNSCryptCertificatePair> (std::shared_ptr<DNSCryptContext>::*)(size_t idx)>("getCertificatePair", [](std::shared_ptr<DNSCryptContext> ctx, size_t idx) {
+  luaCtx.registerFunction<std::shared_ptr<DNSCryptCertificatePair> (std::shared_ptr<DNSCryptContext>::*)(size_t idx)>("getCertificatePair", [](std::shared_ptr<DNSCryptContext>& ctx, size_t idx) {
     if (ctx == nullptr) {
       throw std::runtime_error("DNSCryptContext::getCertificatePair() called on a nil value");
     }
@@ -76,7 +76,7 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
     return result;
   });
 
-  luaCtx.registerFunction<const DNSCryptCert (std::shared_ptr<DNSCryptContext>::*)(size_t idx)>("getCertificate", [](std::shared_ptr<DNSCryptContext> ctx, size_t idx) {
+  luaCtx.registerFunction<const DNSCryptCert (std::shared_ptr<DNSCryptContext>::*)(size_t idx)>("getCertificate", [](std::shared_ptr<DNSCryptContext>& ctx, size_t idx) {
     if (ctx == nullptr) {
       throw std::runtime_error("DNSCryptContext::getCertificate() called on a nil value");
     }
@@ -89,7 +89,7 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
     throw std::runtime_error("This DNSCrypt context has no certificate at index " + std::to_string(idx));
   });
 
-  luaCtx.registerFunction<std::string (std::shared_ptr<DNSCryptContext>::*)() const>("printCertificates", [](const std::shared_ptr<DNSCryptContext> ctx) {
+  luaCtx.registerFunction<std::string (std::shared_ptr<DNSCryptContext>::*)() const>("printCertificates", [](const std::shared_ptr<DNSCryptContext>& ctx) {
     ostringstream ret;
 
     if (ctx != nullptr) {
@@ -124,13 +124,13 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
   });
 
   /* DNSCryptCertificatePair */
-  luaCtx.registerFunction<const DNSCryptCert (std::shared_ptr<DNSCryptCertificatePair>::*)() const>("getCertificate", [](const std::shared_ptr<DNSCryptCertificatePair> pair) {
+  luaCtx.registerFunction<const DNSCryptCert (std::shared_ptr<DNSCryptCertificatePair>::*)() const>("getCertificate", [](const std::shared_ptr<DNSCryptCertificatePair>& pair) {
     if (pair == nullptr) {
       throw std::runtime_error("DNSCryptCertificatePair::getCertificate() called on a nil value");
     }
     return pair->cert;
   });
-  luaCtx.registerFunction<bool (std::shared_ptr<DNSCryptCertificatePair>::*)() const>("isActive", [](const std::shared_ptr<DNSCryptCertificatePair> pair) {
+  luaCtx.registerFunction<bool (std::shared_ptr<DNSCryptCertificatePair>::*)() const>("isActive", [](const std::shared_ptr<DNSCryptCertificatePair>& pair) {
     if (pair == nullptr) {
       throw std::runtime_error("DNSCryptCertificatePair::isActive() called on a nil value");
     }
@@ -138,12 +138,30 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
   });
 
   /* DNSCryptCert */
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getMagic", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.magic.data()), cert.magic.size()); });
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getEsVersion", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.esVersion.data()), cert.esVersion.size()); });
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getProtocolMinorVersion", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.protocolMinorVersion.data()), cert.protocolMinorVersion.size()); });
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getSignature", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.signature.data()), cert.signature.size()); });
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getResolverPublicKey", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.signedData.resolverPK.data()), cert.signedData.resolverPK.size()); });
-  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getClientMagic", [](const DNSCryptCert& cert) { return std::string(reinterpret_cast<const char*>(cert.signedData.clientMagic.data()), cert.signedData.clientMagic.size()); });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getMagic", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.magic.data()), cert.magic.size());
+  });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getEsVersion", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.esVersion.data()), cert.esVersion.size());
+  });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getProtocolMinorVersion", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.protocolMinorVersion.data()), cert.protocolMinorVersion.size());
+  });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getSignature", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.signature.data()), cert.signature.size());
+  });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getResolverPublicKey", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.signedData.resolverPK.data()), cert.signedData.resolverPK.size());
+  });
+  luaCtx.registerFunction<std::string (DNSCryptCert::*)() const>("getClientMagic", [](const DNSCryptCert& cert) {
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): std::string's API
+    return std::string(reinterpret_cast<const char*>(cert.signedData.clientMagic.data()), cert.signedData.clientMagic.size());
+  });
   luaCtx.registerFunction<uint32_t (DNSCryptCert::*)() const>("getSerial", [](const DNSCryptCert& cert) { return cert.getSerial(); });
   luaCtx.registerFunction<uint32_t (DNSCryptCert::*)() const>("getTSStart", [](const DNSCryptCert& cert) { return ntohl(cert.getTSStart()); });
   luaCtx.registerFunction<uint32_t (DNSCryptCert::*)() const>("getTSEnd", [](const DNSCryptCert& cert) { return ntohl(cert.getTSEnd()); });
@@ -181,10 +199,12 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
       DNSCryptContext::generateProviderKeys(publicKey, privateKey);
 
       ofstream pubKStream(publicKeyFile);
+      // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): ofstream's API
       pubKStream.write(reinterpret_cast<char*>(publicKey.data()), publicKey.size());
       pubKStream.close();
 
       ofstream privKStream(privateKeyFile);
+      // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): ofstream's API
       privKStream.write(reinterpret_cast<char*>(privateKey.data()), privateKey.size());
       privKStream.close();
 
@@ -205,6 +225,7 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client)
 
     try {
       ifstream file(publicKeyFile);
+      // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast): ifstream's API
       file.read(reinterpret_cast<char*>(publicKey.data()), publicKey.size());
 
       if (file.fail()) {