Server executing client's requested configuration with the right permissions
[hcoop/domtool2.git] / src / plugins / exim.sml
index ee4cf80..0744fce 100644 (file)
 
 structure Exim :> EXIM = struct
 
+open Ast
+
+val dl = ErrorMsg.dummyLoc
+
+val _ = Defaults.registerDefault ("MailNodes",
+                                 (TList (TBase "node", dl), dl),
+                                 (fn () => (EList (map (fn s => (EString s, dl)) Config.Exim.aliasTo), dl)))
+
 val aliasesChanged = ref false
 val aliasesDefaultChanged = ref false
 val hostsChanged = ref false
@@ -65,7 +73,14 @@ val () = Slave.registerPostHandler
                  ()))
 
 
-val () = Env.action_none "handleMail"
-        (fn () => TextIO.closeOut (Domain.domainFile "mail"))
+val () = Env.actionV_none "handleMail"
+        (fn env =>
+            let
+                val nodes = Env.env (Env.list Env.string) (env, "MailNodes")
+            in
+                app (fn node => TextIO.closeOut
+                                    (Domain.domainFile {node = node,
+                                                        name = "mail"})) nodes
+            end)
 
 end