From bbdf617f34ebca729e1188ef666a9ba9ef004773 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Fri, 15 Dec 2006 01:11:15 +0000 Subject: [PATCH] Limiting acceptable mail nodes --- configDefault/domtool.cfg | 3 +++ configDefault/domtool.cfs | 3 +++ src/domain.sml | 13 ++++++++++++- src/plugins/exim.sml | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/configDefault/domtool.cfg b/configDefault/domtool.cfg index 7d05edb..6d1c7e1 100644 --- a/configDefault/domtool.cfg +++ b/configDefault/domtool.cfg @@ -24,6 +24,9 @@ val slaveNodes = ["mire"] 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" diff --git a/configDefault/domtool.cfs b/configDefault/domtool.cfs index a3267d5..b27b48a 100644 --- a/configDefault/domtool.cfs +++ b/configDefault/domtool.cfs @@ -57,3 +57,6 @@ val homeBase : string val dnsNodes_all : string list val dnsNodes_admin : string list + +val mailNodes_all : string list +val mailNodes_admin : string list diff --git a/src/domain.sml b/src/domain.sml index e09f399..d7603b2 100644 --- a/src/domain.sml +++ b/src/domain.sml @@ -153,7 +153,11 @@ val _ = Env.type_one "node" 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 @@ -620,4 +624,11 @@ val _ = Env.type_one "dns_node" 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 diff --git a/src/plugins/exim.sml b/src/plugins/exim.sml index 0744fce..bb2743a 100644 --- a/src/plugins/exim.sml +++ b/src/plugins/exim.sml @@ -25,7 +25,7 @@ open Ast 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 -- 2.20.1