BIND 10 #2521: support generic version of rdata::createRdata(text) in RRSIG, DHCID, OPT RDATA
BIND 10 Development
do-not-reply at isc.org
Sat May 4 00:05:34 UTC 2013
#2521: support generic version of rdata::createRdata(text) in RRSIG, DHCID, OPT
RDATA
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | jinmei
Priority: medium | Status:
Component: libdns++ | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-20130514
Sub-Project: DNS | Resolution:
Estimated Difficulty: 4 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| loadzone-ng
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:25 pselkirk]:
> I think I've addressed all your concerns.
> * I borrowed Mukund's string aggregator code from DNSKEY. (OTOH, I think
the better long-term solution would be to add a read-to-EOL method to
MasterLexer.)
Maybe we should do it within this ticket, then? But we've already
spent quite some time for it, so it may be better to defer it to a
separate ticket. I'd leave it to you.
Comments on the revised branch:
First, I made a couple of minor changes directly.
'''rrsig_46.cc'''
- This one still seems open: `signer` can be a reference, which is
possibly a bit more efficient:
{{{#!cpp
const Name& signer = createNameFromLexer(lexer, origin);
//const Name signer = createNameFromLexer(lexer, origin);
}}}
It's a minor point, though, so if you simply decided not to adopt
it, I'm okay with it, but I was not sure whether it was actually
overlooked.
'''dhcid_49.cc'''
- What's "key data" in this comment?
{{{#!cpp
/// It is okay for the key data to be missing. Note: BIND 9 also accepts
/// DHCID missing key data. While the RFC is silent in this case, and it
}}}
If this means the entire DHCID RDATA, BIND 9 actually rejects empty
data. I'm not sure if it's intentional or not, though (but it
rejects the empty case both for from-text and from-wire, so at least
it's consistent).
- If we allow empty data, we need to be careful about the boundary
condition:
{{{#!cpp
buffer.readData(&digest_[0], rdata_len);
}}}
std::vector doesn't allow to get access to the 0-th element if it's
empty. there are several such cases in this file.
--
Ticket URL: <http://bind10.isc.org/ticket/2521#comment:27>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list