X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/36e42cb86393a7b9e333ecd7edfbdd16c7d9a1ac..6bb366c5a60247419dce5cbce4a5c034fa2f1e5c:/src/main.sml diff --git a/src/main.sml b/src/main.sml index 734b10a..461207a 100644 --- a/src/main.sml +++ b/src/main.sml @@ -53,7 +53,7 @@ fun basis () = loop files val files = loop [] - val files = Order.order files + val (_, files) = Order.order files in if !ErrorMsg.anyErrors then Env.empty @@ -63,6 +63,12 @@ fun basis () = fun check fname = let + val uid = Posix.ProcEnv.getuid () + val user = Posix.SysDB.Passwd.name (Posix.SysDB.getpwuid uid) + + val () = Acl.read Config.aclFile + val () = Domain.setUser user + val _ = ErrorMsg.reset () val _ = Env.preTycheck () @@ -133,13 +139,11 @@ fun hostname () = fun request fname = let + val _ = check fname + val uid = Posix.ProcEnv.getuid () val user = Posix.SysDB.Passwd.name (Posix.SysDB.getpwuid uid) - val () = Acl.read Config.aclFile - val () = Domain.setUser user - val _ = check fname - val context = OpenSSL.context (Config.certDir ^ "/" ^ user ^ ".pem", Config.keyDir ^ "/" ^ user ^ ".pem", Config.trustStore) @@ -277,10 +281,35 @@ fun slave () = OpenSSL.close bio; loop () end - end + end handle OpenSSL.OpenSSL s => + (print ("OpenSSL error: "^ s ^ "\n"); + OpenSSL.close bio + handle OpenSSL.OpenSSL _ => (); + loop ()) in loop (); OpenSSL.shutdown sock end +fun autodocBasis outdir = + let + val dir = Posix.FileSys.opendir Config.libRoot + + fun loop files = + case Posix.FileSys.readdir dir of + NONE => (Posix.FileSys.closedir dir; + files) + | SOME fname => + if String.isSuffix ".dtl" fname then + loop (OS.Path.joinDirFile {dir = Config.libRoot, + file = fname} + :: files) + else + loop files + + val files = loop [] + in + Autodoc.autodoc {outdir = outdir, infiles = files} + end + end