Limiting acceptable mail nodes
authorAdam Chlipala <adamc@hcoop.net>
Fri, 15 Dec 2006 01:11:15 +0000 (01:11 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Fri, 15 Dec 2006 01:11:15 +0000 (01:11 +0000)
configDefault/domtool.cfg
configDefault/domtool.cfs
src/domain.sml
src/plugins/exim.sml

index 7d05edb..6d1c7e1 100644 (file)
@@ -24,6 +24,9 @@ val slaveNodes = ["mire"]
 val dnsNodes_all = ["deleuze", "mire"]
 val dnsNodes_admin = []
 
 val dnsNodes_all = ["deleuze", "mire"]
 val dnsNodes_admin = []
 
+val mailNodes_all = ["deleuze"]
+val mailNodes_admin = ["mire"]
+
 val aclFile = "/afs/hcoop.net/common/etc/domtool/acl"
 
 val testUser = "test"
 val aclFile = "/afs/hcoop.net/common/etc/domtool/acl"
 
 val testUser = "test"
index a3267d5..b27b48a 100644 (file)
@@ -57,3 +57,6 @@ val homeBase : string
 
 val dnsNodes_all : string list
 val dnsNodes_admin : string list
 
 val dnsNodes_all : string list
 val dnsNodes_admin : string list
+
+val mailNodes_all : string list
+val mailNodes_admin : string list
index e09f399..d7603b2 100644 (file)
@@ -153,7 +153,11 @@ val _ = Env.type_one "node"
        Env.string
        validNode
 
        Env.string
        validNode
 
-val _ = Env.registerFunction ("web_node_to_node",
+val _ = Env.registerFunction ("dns_node_to_node",
+                             fn [e] => SOME e
+                              | _ => NONE)
+
+val _ = Env.registerFunction ("mail_node_to_node",
                              fn [e] => SOME e
                               | _ => NONE)
 open Ast
                              fn [e] => SOME e
                               | _ => NONE)
 open Ast
@@ -620,4 +624,11 @@ val _ = Env.type_one "dns_node"
            orelse (hasPriv "dns"
                    andalso List.exists (fn x => x = node) Config.dnsNodes_admin))
 
            orelse (hasPriv "dns"
                    andalso List.exists (fn x => x = node) Config.dnsNodes_admin))
 
+val _ = Env.type_one "mail_node"
+       Env.string
+       (fn node =>
+           List.exists (fn x => x = node) Config.mailNodes_all
+           orelse (hasPriv "mail"
+                   andalso List.exists (fn x => x = node) Config.mailNodes_admin))
+
 end
 end
index 0744fce..bb2743a 100644 (file)
@@ -25,7 +25,7 @@ open Ast
 val dl = ErrorMsg.dummyLoc
 
 val _ = Defaults.registerDefault ("MailNodes",
 val dl = ErrorMsg.dummyLoc
 
 val _ = Defaults.registerDefault ("MailNodes",
-                                 (TList (TBase "node", dl), dl),
+                                 (TList (TBase "mail_node", dl), dl),
                                  (fn () => (EList (map (fn s => (EString s, dl)) Config.Exim.aliasTo), dl)))
 
 val aliasesChanged = ref false
                                  (fn () => (EList (map (fn s => (EString s, dl)) Config.Exim.aliasTo), dl)))
 
 val aliasesChanged = ref false