mgmt: Add addDelegatedRrset to automatically create AUTH records
Change-Id: I4d87ca52d3d176a8541236ec31526f1ca6033e34
diff --git a/src/daemon/rrset-factory.cpp b/src/daemon/rrset-factory.cpp
index 9395f42..2830dac 100644
--- a/src/daemon/rrset-factory.cpp
+++ b/src/daemon/rrset-factory.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2014-2016, Regents of the University of California.
+ * Copyright (c) 2014-2017, Regents of the University of California.
*
* This file is part of NDNS (Named Data Networking Domain Name Service).
* See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -223,6 +223,31 @@
return rrset;
}
+Rrset
+RrsetFactory::generateAuthRrset(const Name& label,
+ const name::Component& type,
+ const uint64_t version,
+ time::seconds ttl)
+{
+ if (!m_checked) {
+ BOOST_THROW_EXCEPTION(Error("You have to call checkZoneKey before call generate functions"));
+ }
+
+ if (ttl == DEFAULT_RR_TTL)
+ ttl = m_zone.getTtl();
+
+ Name name;
+ Rrset rrset;
+ std::tie(rrset, name) = generateBaseRrset(label, type, version, ttl);
+
+ Data data(name);
+
+ setContentType(data, NDNS_AUTH, ttl);
+ sign(data);
+ rrset.setData(data.wireEncode());
+
+ return rrset;
+}
void
RrsetFactory::sign(Data& data)