]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth lmdb: add a UUID to newly created databases
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Wed, 26 Jan 2022 12:24:25 +0000 (13:24 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 11 Mar 2022 14:48:37 +0000 (15:48 +0100)
(cherry picked from commit ba731a422ab3eb3c31d85d3683338abadb5a800b, backport of #11241)

modules/lmdbbackend/lmdbbackend.cc
pdns/Makefile.am

index 03b3fb38a866f657f784d8061cae08d840776cb0..7c3173a1747b4d8fcdd57ec6cceb5059283a1510 100644 (file)
 #include "pdns/version.hh"
 #include "pdns/arguments.hh"
 #include "pdns/lock.hh"
+#include "pdns/uuid-utils.hh"
 #include <boost/archive/binary_oarchive.hpp>
 #include <boost/archive/binary_iarchive.hpp>
 #include <boost/serialization/vector.hpp>
 #include <boost/serialization/string.hpp>
 #include <boost/serialization/utility.hpp>
+#include <boost/uuid/uuid_serialize.hpp>
 
 #include <boost/iostreams/device/back_inserter.hpp>
 
@@ -115,6 +117,13 @@ LMDBBackend::LMDBBackend(const std::string& suffix)
         txn->put(pdnsdbi, "shards", s_shards);
       }
 
+      MDBOutVal gotuuid;
+      if (txn->get(pdnsdbi, "uuid", gotuuid)) {
+        const auto uuid = getUniqueID();
+        const string uuids(uuid.begin(), uuid.end());
+        txn->put(pdnsdbi, "uuid", uuids);
+      }
+
       txn->commit();
 
       if (schemaversion < 3) {
index 004c8becfedcaaa09dfa202ffd7a63fb22e45d3a..93fc7071273aafad6b90df1921da5c10f34967f2 100644 (file)
@@ -378,6 +378,7 @@ pdnsutil_SOURCES = \
        tsigutils.hh tsigutils.cc \
        ueberbackend.cc \
        unix_utility.cc \
+       uuid-utils.hh uuid-utils.cc \
        zoneparser-tng.cc
 
 pdnsutil_LDFLAGS = \