Better error message for fwtool
[hcoop/domtool2.git] / src / main.sml
index c95ef31..f2beee8 100644 (file)
@@ -753,7 +753,7 @@ fun requestMysqlFixperms () =
 fun requestApt {node, pkg} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -782,7 +782,7 @@ fun requestApt {node, pkg} =
 fun requestCron {node, uname} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -811,7 +811,7 @@ fun requestCron {node, uname} =
 fun requestFtp {node, uname} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -840,7 +840,7 @@ fun requestFtp {node, uname} =
 fun requestTrustedPath {node, uname} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -869,7 +869,7 @@ fun requestTrustedPath {node, uname} =
 fun requestSocketPerm {node, uname} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -900,7 +900,7 @@ fun requestSocketPerm {node, uname} =
 fun requestFirewall {node, uname} =
     let
        val (user, context) = requestContext (fn () => ())
-       val bio = OpenSSL.connect true (context, if node = Config.masterNode then
+       val bio = OpenSSL.connect true (context, if node = Config.dispatcherName then
                                                     dispatcher
                                                 else
                                                     Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort)
@@ -1771,14 +1771,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;