X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/8df2e702cf3e5ed9b8433585b357bbcd9f0d623e..ed9fda3a0e2edcf4ed546e0eb9ac128865538276:/src/plugins/exim.sml diff --git a/src/plugins/exim.sml b/src/plugins/exim.sml index 112ab5f..ee4cf80 100644 --- a/src/plugins/exim.sml +++ b/src/plugins/exim.sml @@ -22,10 +22,12 @@ structure Exim :> EXIM = struct val aliasesChanged = ref false val aliasesDefaultChanged = ref false +val hostsChanged = ref false val () = Slave.registerPreHandler (fn () => (aliasesChanged := false; - aliasesDefaultChanged := false)) + aliasesDefaultChanged := false; + hostsChanged := false)) val () = Slave.registerFileHandler (fn fs => let @@ -35,6 +37,8 @@ val () = Slave.registerFileHandler (fn fs => aliasesChanged := true else if #file spl = "aliases.default" then aliasesDefaultChanged := true + else if #file spl = "mail" then + hostsChanged := true else () end) @@ -49,10 +53,19 @@ val () = Slave.registerPostHandler Slave.concatTo (fn s => s = "aliases.default") Config.Exim.aliasesDefault else (); - if !aliasesChanged orelse !aliasesDefaultChanged then + if !hostsChanged then + Slave.enumerateTo (fn s => s = "mail") ":" Config.Exim.handleDomains + else + (); + if !aliasesChanged orelse !aliasesDefaultChanged + orelse !hostsChanged then Slave.shellF ([Config.Exim.reload], fn cl => "Error reloading exim with " ^ cl) else ())) + +val () = Env.action_none "handleMail" + (fn () => TextIO.closeOut (Domain.domainFile "mail")) + end