BIND 10 #221: Refactoring auth server and merge the axfr and notify logic into it
BIND 10 Development
do-not-reply at isc.org
Wed Jun 23 06:13:32 UTC 2010
#221: Refactoring auth server and merge the axfr and notify logic into it
-------------------------+--------------------------------------------------
Reporter: hanfeng | Owner: jinmei
Type: enhancement | Status: reviewing
Priority: major | Milestone: 05. 3rd Incremental Release: Serious Secondary
Component: b10-auth | Resolution:
Keywords: | Sensitive: 0
-------------------------+--------------------------------------------------
Comment(by jinmei):
Additional comments on the latest version of processNotify() and
processAxfrQuery().
- general
- Style issues still remain. I've directly fixed them and committed
the fix to the branch.
- please don't make notifyin_fromwire by naively copy other data files
(btw the comment is wrong). they are expected to be generated from a
.spec file using lib/dns/tests/testdata/gen-wiredata.py.
- processMessage
- update the comment: "we only support normal queries", which is not
true any more.
- processAxfrQuery
- when axfr_client_.connect() fails I suspect the auth server will
receive an ASIO exception (and kill the server as a result). It should be
hidden within the !XfroutClient module
- why returning SERVFAIL for AXFR/UDP? does RFC say so?
- parentheses after return: please make the style consistent.
- I suspect it shouldn't return a response if the axfr request is
successfully forwarded.
- variable name "is_xfrin_connection_established_" is confusing because
we use the term "xfrin" for the opposite direction.
- processNotify
- many of my previous comments still hold.
- if the session cannot be established it should return an error
message.
- at least according to the doc Element::createFromString() could
return NULL. If that's the case it should be handled accordingly. (see
Trac #250)
- shouldn't it handle the case where "rcode" indicates an error?
- why do we need these two catch clauses? Although the error messages
are slightly different, I don't see much benefit in this case to separate
these two (note that we could show where the exception is triggered from
isc::Exception). On the other hand, since we cannot be sure what kind of
underlying modules are necessary in the try clause, just catching these
two specific exception classes may be too restricted. If I were to
implement it, I'd catch all (isc::)Exception objects (see also
processNormalQuery).
- when the error happens, return SERVFAIL, rather than ignoring it.
--
Ticket URL: <https://bind10.isc.org/ticket/221#comment:11>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list