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