<!-- This file holds all the different DNS constructs that can be use. Each DNS constuct
     is basically a set of forward and reverse start of authorities, and include external 
     variables which must be defined when they are included. To use these, you must define 
     the variables somewhere in the variable namespace. Hence, if a construct defines that 
     $primaryns needs to be present, define it somewhere, either within the parent Service 
     or Node. -->

<!-- NOTE: Variables defined within the service constructs and the ConstructLibrary itself
           will OVERRIDE any variables defined within the variable structure with the same
           name. Hence, they have the tightest scoping -->

<ntman:ConstructLibrary xmlns="http://www.ecs.soton.ac.uk/~src299/xmlnetman/dns" 
                        xmlns:ntman="http://www.ecs.soton.ac.uk/~src299/xmlnetman"
                        xsi:schemaLocation="http://www.ecs.soton.ac.uk/~src299/xmlnetman ConstructLibrary.xsd"
                        name="External DNS constructs"
                        description="Various DNS external constructs">

   <!-- DNS reverse start of authority entry for lookback resolution. User should define $primaryns to
        be the address of the primary name server and $adminmail to the administrators email. -->
   <DNSConstruct name="DNS::ExternalConstruct:Loopback" description="Lookback DNS reverse resolution">

      <dns:ReverseSOA match="0.0.127.in-addr.arpa"
                      primaryns="$primaryns"
                      adminmail="$adminmail"
	                   file="db.127.0.0"
                      serial="1"
                      refresh="10800"
                      retry="3600"
                      expire="604800"
                      min_ttl="86400">

         <dns:NS match="" target="$primaryns"/>
         <dns:PTR match="1" target="localhost.$domain"/>

      </dns:ReverseSOA>
      
   </DNSConstruct>

</ntman:ConstructLibrary>

