}
define view-map {map} {
+
+ ## OK, this needs careful documentation.
+ ##
+ ## The local nameserver presents a number of views according to its
+ ## configuration. It is our purpose here to generate a configuration
+ ## snippet for such a view.
+ ##
+ ## A user might have several different views of a zone which are meant to
+ ## be presented to different clients. These map on to the server views
+ ## in a one-to-many fashion. The `view-map' option defines this mapping.
+ ## The argument is a list of alternating SERVER-VIEW USER-VIEW pairs; the
+ ## SERVER-VIEW may be a glob pattern; the USER-VIEW may be the special
+ ## token `=' to mean `same as the SERVER-VIEW'.
+ ##
+ ## We only keep one copy of the zone file for each user view: if the user
+ ## view is used by many server views, then the zone stanza for each of
+ ## those views refers to the same zone file.
+
if {[llength $map] % 2} {
error "view map must have an even number of items"
}
proc compute-zone-properties {view config} {
## Derive interesting information from the zone configuration plist CONFIG,
- ## relative to the stated VIEW. Return a new plist.
+ ## relative to the stated server VIEW. Return a new plist.
array set zone $config