BIND 10 #1576: implement ZoneFinder::findNSEC3 in in-memory data source
BIND 10 Development
do-not-reply at isc.org
Mon Feb 13 09:27:31 UTC 2012
#1576: implement ZoneFinder::findNSEC3 in in-memory data source
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: reviewing
Type: task | Milestone:
Priority: major | Sprint-20120221
Component: data | Resolution:
source | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: N/A | Estimated Difficulty: 6
Feature Depending on Ticket: | Total Hours: 0
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by vorner):
* owner: vorner => jinmei
Comment:
Hello
Replying to [comment:15 jinmei]:
> Replying to [comment:14 vorner]:
> > I don't know. If I wanted to play with a hash algorithm, I'd want the
rest to keep working and check how it works in practice (eg. plugging it
into b10-auth or b10-resolver and putting it online somewhere). So the
approach of replacing it doesn't seem to work.
> >
> > I understand it is too early to worry about it, but then, I think the
comment should claim testing purposes only for now, because I don't see
how this would help in the case of the experiments. It might be worth
noting the interface might change for allowing of easy plugging in of new
algorithms.
>
> One possible approach is to make DefaultNSEC3HashCreator public, and
> let the user-defined creator call its create()s for all other cases
> than the case that needs specialized behavior. Would that address
> your concern?
That would probably help a little (with a comment recommending such use).
It would still be impossible to „crossbreed“ two different creators, so it
would still not be usable for plugin-provided hash algorithms, but we
might not need that in the end anyway.
> > Well, it is surprising, because nothing inherits from it (or, it does,
hidden in the macros, but they would be static objects on the stack, so
the dynamic resolution would not happen anyway). The first think I did
when I saw it was looking if the test inherits from something unusual or
if something inherits from the test. Then I asked if there's some other
reason I overlooked.
>
> If you think it's rather confusing I'm okay with removing the
> virtual. For now I've not touched it.
Yes, please.
> > I was surprised by the empty „Actual“ field and put it into a
debugger. It shows that the closest_labels is a char (so it would be nice
to turn it to integer, or, why is the variable char-sized anyway? I know
it can be up to 255 anyway, but is there a need to save space, if the
return value is just an ephemeral object?). And the debugger showed it was
4 at the time.
>
> I thought it's slightly more lightweight in copy. It would also be
> not bad to eliminate the possibility of getting a bogus value from a
> buggy derived findNSEC3() implementation (such as 256). But it's not
> a strong opinion. For now I've not changed that except the tests now
> compare them as int.
While I doubt it'll have any positive impact on performance (it might be
smaller to copy, but I don't think there'll be any copy anyway in the
optimised version, and it'll be converted to native-width whenever there's
a manipulation with it, and due to data alignment, it'll be padded with
empty space anyway). But the prevention of bogus data looks reasonable, so
I don't think it needs to be changed.
There's nothing substantial now, so after you update it, I think it could
be merged without another review round.
Thank you
--
Ticket URL: <http://bind10.isc.org/ticket/1576#comment:17>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list