Firewall Regen Support
[hcoop/domtool2.git] / src / plugins / firewall.sml
index 65c9db1..70c45b5 100644 (file)
@@ -23,6 +23,9 @@
 
 structure Firewall :> FIREWALL = struct
 
+type firewall_rules = { server_rules : (string list DataStructures.StringMap.map), 
+                       client_rules : (string list DataStructures.StringMap.map)}
+
 structure StringMap = DataStructures.StringMap
 
 fun parseRules _ =
@@ -84,11 +87,10 @@ fun query uname =
     end
 
 
-fun generateFirewallConfig _ =
+fun generateFirewallConfig {server_rules, client_rules} =
 (* rule generation must happen on the node (not really, but I'd rather
     avoid codifying that uids must be consistent between hosts) *) 
     let
-       val {server_rules, client_rules} = parseRules ()
        val users_tcp_out_conf = TextIO.openOut (Config.Firewall.firewallDir ^ "/users_tcp_out.conf")
        val users_tcp_in_conf = TextIO.openOut (Config.Firewall.firewallDir ^ "/users_tcp_in.conf")
        val users_conf = TextIO.openOut (Config.Firewall.firewallDir ^ "/users.conf")
@@ -121,7 +123,11 @@ fun generateFirewallConfig _ =
 
        TextIO.closeOut users_conf;
        TextIO.closeOut users_tcp_out_conf;
-       TextIO.closeOut users_tcp_in_conf
+       TextIO.closeOut users_tcp_in_conf;
+
+       true
     end
-    
+
+fun publishConfig _ = 
+    Slave.shell [Config.Firewall.reload]
 end