Firewall Regen Support
[hcoop/domtool2.git] / src / main.sml
index 2800cbd..a673fde 100644 (file)
@@ -1745,6 +1745,16 @@ fun slave () =
                                                         ("Requested mysql-fixperms, but execution failed!",
                                                          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.")
+                                                   else
+                                                       ("Not authorized to regenerate firewall.", SOME ("Unauthorized user " ^ user ^ "attempted to regenerated firewall")))
+                                         (fn () => ())
 
                                   | _ => (OpenSSL.close bio;
                                           loop ())