From fa3b6b8704aeed09045e6e1c89c775ae2332e597 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 29 Apr 2007 20:45:28 +0000 Subject: [PATCH] Domain aliases support for BIND --- src/plugins/bind.sml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/plugins/bind.sml b/src/plugins/bind.sml index 9c72152..5ba7fed 100644 --- a/src/plugins/bind.sml +++ b/src/plugins/bind.sml @@ -31,15 +31,15 @@ val () = Slave.registerPreHandler (fn () => (namedChanged := false; zoneChanged := false; didDomain := "")) -val dns : TextIO.outstream option ref = ref NONE +val dns : Domain.files option ref = ref NONE val _ = Domain.registerBefore - (fn _ => dns := Option.map (fn node => Domain.domainFile {node = node, - name = "dns"}) + (fn _ => dns := Option.map (fn node => Domain.domainsFile {node = node, + name = "dns"}) (Domain.dnsMaster ())) val _ = Domain.registerAfter - (fn _ => (Option.app TextIO.closeOut (!dns); + (fn _ => (Option.app (fn files => #close files ()) (!dns); dns := NONE)) val dl = ErrorMsg.dummyLoc @@ -69,15 +69,16 @@ val record = fn (EApp ((EApp ((EVar "dnsA", _), e1), _), e2), _) => fun writeRecord (evs, r) = case !dns of NONE => print "Warning: DNS directive ignored because no master DNS server is configured for this domain\n" - | SOME file => + | SOME files => let - fun write s = TextIO.output (file, s) + fun write s = #write files s + fun writeDom () = #writeDom files () val ttl = Env.env Env.int (evs, "TTL") in case r of A (from, to) => (write from; write "."; - write (Domain.currentDomain ()); + writeDom (); write ".\t"; write (Int.toString ttl); write "\tIN\tA\t"; @@ -85,7 +86,7 @@ fun writeRecord (evs, r) = write "\n") | CNAME (from, to) => (write from; write "."; - write (Domain.currentDomain ()); + writeDom (); write ".\t"; write (Int.toString ttl); write "\tIN\tCNAME\t"; -- 2.20.1