X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/281a6135805f7c5647a8e3791f76f4f143559d0c..1a86b2d34839ea1ba3e99dbeff414e0262d434ed:/src/main.sml diff --git a/src/main.sml b/src/main.sml index 9463ce2..28834af 100644 --- a/src/main.sml +++ b/src/main.sml @@ -1626,7 +1626,8 @@ fun slave () = val _ = print ("Slave server starting at " ^ now () ^ "\n") fun loop () = - (case OpenSSL.accept sock of + (Acl.read Config.aclFile; + case OpenSSL.accept sock of NONE => () | SOME bio => let @@ -1771,14 +1772,16 @@ fun slave () = SOME "Script execution failed.")) (fn () => ())) | MsgFirewallRegen => - doIt (fn () => if Acl.query {user = user, class = "priv", value = "all"} andalso List.exists (fn x => x = host) Config.Firewall.firewallNodes then - if (Firewall.generateFirewallConfig (Firewall.parseRules ()) andalso Firewall.publishConfig ()) - then - ("Firewall rules regenerated.", NONE) - else - ("Rules regeneration failed!", SOME "Script execution failed.") + doIt (fn () => if Acl.query {user = user, class = "priv", value = "all"} then + if List.exists (fn x => x = host) Config.Firewall.firewallNodes then + if (Firewall.generateFirewallConfig (Firewall.parseRules ()) andalso Firewall.publishConfig ()) + then + ("Firewall rules regenerated.", NONE) + else + ("Rules regeneration failed!", SOME "Script execution failed.") + else ("Node not controlled by domtool firewall.", SOME (host)) else - ("Not authorized to regenerate firewall.", SOME ("Unauthorized user " ^ user ^ "attempted to regenerated firewall"))) + ("Not authorized to regenerate firewall.", SOME ("Unauthorized user " ^ user ^ " attempted to regenerated firewall"))) (fn () => ()) | _ => (OpenSSL.close bio;