BIND 10 #1259: framework for adding/deleting RR in datasource from xfrin
BIND 10 Development
do-not-reply at isc.org
Mon Oct 3 13:45:48 UTC 2011
#1259: framework for adding/deleting RR in datasource from xfrin
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: reviewing
Type: task | Milestone:
Priority: | Sprint-20111011
blocker | Resolution:
Component: xfrin | Sensitive: 0
Keywords: | Sub-Project: DNS
Defect Severity: N/A | Estimated Difficulty: 0
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:5 jinmei]:
> '''general'''
> - This is not directly related to this branch, but why does it import
> isc.dns, not pydnspp? Or, why do we have both isc.dns (as a
> forwarder module) and pydnspp in the first place? Maybe we should
> deprecate pydnspp and unify them into isc.dns?
I don't know. I just looked into some module around and found it is using
isc.dns, so I used that too. It looks nicer to me, so I'm in favor of
having just one name for the module, isc.dns is more consistent.
But if I should use pydnspp, I'm OK with that of course. Should I replace
it?
> - Is the module name 'xfrin' appropriate? I guess we'll reuse (whole
> or part) of this code for dynamic update. We may also want to
> support other ways to change zone data (e.g. via bindctl), and it
> may also want to use this module. Perhaps we should eventually have
> a single isc.dns module (package) and make this module a sub module
> of it, like isc.dns.diff?
I'm not sure. I just needed some module and didn't want to spend too much
time on deciding about the name, when we need it now. If you have a better
name, I'll switch it.
> - Diff.__init__(): it creates an updater at initialization time. This
> is slightly different from the original BIND 9 behavior. In BIND 9,
> we delay starting the transaction when first apply() happens,
> thereby limiting the duration of the transaction even if the remote
> server is slowly feeding the data. If you thought that would be a
> premature optimization and intentionally skipped that, I'm okay with
> it; just checking the intent.
I don't know if it optimises anything at all, but that's not the reason
why I put it directly to the constructor. I want to raise errors (like
non-existant zone or the data source not implementing updates) as soon as
possible. I'd either need to ask for the zone ID and delay the real
creation for later, but that one looks more complicated and more work for
computer as well, so I just did it this way.
> - Diff.compact(): in a future version we should probably treat
> RRSIGs that cover different RR types separately, just as BIND 9
> does. I'm okay with deferring it as in practice we won't have to
> worry about the case, and in any event that wouldn't matter in our
> current sqlite3 schema (and it's the only writable data source for
> now).
ACK, let's leave it for later.
> - Diff.compact(): BIND 9 checks if the TTLs of the combined RRs are
> the same, and a warning log if they aren't. We should probably do
> the same. (and we need a test for that case)
I added the check and test. I'm not sure what prefix I should give to the
logging messages, it may depend if we want to rename the library to
anything.
> - Diff.add(), remove(): maybe we should check if the RR class is
> identical to that associated with the client (updater).
> hmm, BIND 9 doesn't check this at all, maybe trusting the caller.
> I know in BIND 9 the DNS message parser ensures all RR classes are
> the same, so it probably relies on that check. Either way is okay
> for me - but if we assume the RR class is valid within this module,
> this should be documented for the class pydoc.
OK, the check was added.
Thanks
--
Ticket URL: <https://bind10.isc.org/ticket/1259#comment:7>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list