BIND 10 #551: wildcard handling for memory zone: find (main cases)
BIND 10 Development
do-not-reply at isc.org
Sat Jan 29 07:52:53 UTC 2011
#551: wildcard handling for memory zone: find (main cases)
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: A-Team-
Component: data source | Task-Backlog
Sensitive: 0 | Keywords:
Add Hours to Ticket: 0 | Estimated Number of Hours: 0
Total Hours: 0 | Billable?: 1
| Internal?: 0
-------------------------------------+-------------------------------------
See the analysis ticket (#506) for the big picture.
This is a substask for finding (matching with) wildcard, covering
major cases.
This subtask requres #550. On top of that, update MemoryZone::find()
as follows:
If the search result is PARTIALMATCH and it's not a delegation,
perform the wildcard check. It works as follows:
1. if the search stops at a node marked as "wild", that may be a
wildcard match. otherwise, it's not (this case is possible if there
are *.example.com and foo.example.com, and the query name is
bar.foo.example.com. This case should not result in wildcard match
according to Section 4.3.3 of RFC1034).
2. if it can be a wildcard match, construct the wildcard name by
prepending '*' to the node's abstract name.
3. get the RBTree node for that wildcard name by searching RBTree.
4. reject the case where the query name is a subdomain of an empty
non terminal node under the node marked as "wild" (which was found in
the first find()). This process is complicated, so it will be handled
in a separate subtask.
5. if the wildcard match is allowed, use the RRsets for the wildcard
node, and return any positive response with replacing the owner name
of the RRset (which is the wildcard name) with the query name.
Note that we should not do wildcard matching if the search finds a
zone cut (delegation): According to RFC1034, we cancel wildcard matching
on delegation (Section 4.3.3). The above algorithm will implicitly
reject such cases, but tests should be written explicitly.
--
Ticket URL: <https://bind10.isc.org/ticket/551>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list