|
@@ -258,6 +258,38 @@ RRset::getRRsigDataCount() const {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+unsigned int
|
|
|
+RRset::toWire(OutputBuffer& buffer) const {
|
|
|
+ unsigned int rrs_written;
|
|
|
+
|
|
|
+ rrs_written = rrsetToWire<OutputBuffer>(*this, buffer, 0);
|
|
|
+ if (rrsig_) {
|
|
|
+ rrs_written += rrsetToWire<OutputBuffer>(*(rrsig_.get()), buffer, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ return (rrs_written);
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int
|
|
|
+RRset::toWire(AbstractMessageRenderer& renderer) const {
|
|
|
+ unsigned int rrs_written;
|
|
|
+
|
|
|
+ rrs_written =
|
|
|
+ rrsetToWire<AbstractMessageRenderer>(*this, renderer,
|
|
|
+ renderer.getLengthLimit());
|
|
|
+ if (rrsig_) {
|
|
|
+ rrs_written +=
|
|
|
+ rrsetToWire<AbstractMessageRenderer>(*(rrsig_.get()), renderer,
|
|
|
+ renderer.getLengthLimit());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (getRdataCount() + getRRsigDataCount() > rrs_written) {
|
|
|
+ renderer.setTruncated();
|
|
|
+ }
|
|
|
+
|
|
|
+ return (rrs_written);
|
|
|
+}
|
|
|
+
|
|
|
namespace {
|
|
|
class BasicRdataIterator : public RdataIterator {
|
|
|
private:
|