open Ast
-val dl = ErrorMsg.dummyLoc
-
-val _ = Defaults.registerDefault ("MailNodes",
- (TList (TBase "mail_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
let
val spl = OS.Path.splitDirFile (#file fs)
in
- if #file spl = "aliases" then
+ if #file spl = "aliases.base" then
aliasesChanged := true
else if #file spl = "aliases.default" then
aliasesDefaultChanged := true
- else if #file spl = "mail" then
+ else if #file spl = "mail.handle" then
hostsChanged := true
else if #file spl = "mail.relay" then
relayHostsChanged := true
val () = Slave.registerPostHandler
(fn () =>
(if !aliasesChanged then
- Slave.concatTo (fn s => s = "aliases") Config.Exim.aliases
+ Slave.concatTo (fn s => s = "aliases.base") Config.Exim.aliases
else
();
if !aliasesDefaultChanged then
else
();
if !hostsChanged then
- Slave.enumerateTo (fn s => s = "mail") ":" Config.Exim.handleDomains
+ Slave.enumerateTo (fn s => s = "mail.handle") ":" Config.Exim.handleDomains
else
();
if !relayHostsChanged then
let
val nodes = Env.env (Env.list Env.string) (env, "MailNodes")
in
- app (fn node => TextIO.closeOut
- (Domain.domainFile {node = node,
- name = "mail"})) nodes
+ app (fn node => #close
+ (Domain.domainsFile {node = node,
+ name = "mail.handle"}) ()) nodes
end)
val () = Env.actionV_none "relayMail"
let
val nodes = Env.env (Env.list Env.string) (env, "MailNodes")
in
- app (fn node => TextIO.closeOut
- (Domain.domainFile {node = node,
- name = "mail.relay"})) nodes
+ app (fn node => #close
+ (Domain.domainsFile {node = node,
+ name = "mail.relay"}) ()) nodes
end)
+val () = Domain.registerDescriber (Domain.considerAll
+ [Domain.Filename {filename = "aliases.base",
+ heading = "E-mail aliases:",
+ showEmpty = false},
+ Domain.Filename {filename = "aliases.default",
+ heading = "Default e-mail alias:",
+ showEmpty = false},
+ Domain.Filename {filename = "mail.handle",
+ heading = "E-mail handling is on.",
+ showEmpty = true},
+ Domain.Filename {filename = "mail.relay",
+ heading = "E-mail relaying is on.",
+ showEmpty = true}])
+
end