[svn] commit: r884 - in /branches/each-ds/src/lib/dns/cpp: name.cc rdata/generic/nsec_47.cc rdata/generic/nsec_47.h
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Feb 19 19:54:09 UTC 2010
Author: each
Date: Fri Feb 19 19:54:08 2010
New Revision: 884
Log:
- modify Name.reverse() per discussion on bind10-dev
- add support for NSEC rdata type
Added:
branches/each-ds/src/lib/dns/cpp/rdata/generic/nsec_47.cc
branches/each-ds/src/lib/dns/cpp/rdata/generic/nsec_47.h
Modified:
branches/each-ds/src/lib/dns/cpp/name.cc
Modified: branches/each-ds/src/lib/dns/cpp/name.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/name.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/name.cc Fri Feb 19 19:54:08 2010
@@ -618,19 +618,18 @@
retname.offsets_.reserve(labelcount_);
retname.ndata_.reserve(length_);
- std::vector<unsigned char>::const_reverse_iterator rit;
- rit = offsets_.rbegin();
- rit++; // skip over the trailing dot
- retname.offsets_.push_back(0);
- while (rit < offsets_.rend()) {
- unsigned char offset = *rit;
- retname.ndata_.insert(retname.ndata_.size(), ndata_, offset,
- ndata_.at(offset) + 1);
+ // Copy the original name, label by label, from tail to head.
+ vector<unsigned char>::const_reverse_iterator rit0 = offsets_.rbegin();
+ vector<unsigned char>::const_reverse_iterator rit1 = rit0 + 1;
+ string::const_iterator n0 = ndata_.begin();
+ while (rit1 != offsets_.rend()) {
+ retname.ndata_.append(n0 + *rit1, n0 + *rit0);
retname.offsets_.push_back(retname.ndata_.size());
- rit++;
- }
-
+ ++rit0;
+ ++rit1;
+ }
retname.ndata_.push_back(0);
+
retname.labelcount_ = labelcount_;
retname.length_ = length_;
More information about the bind10-changes
mailing list