X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/73b9542320e82ad398689b66bc1938c78cc53be0..a8e88df70a675cce965380df971c9e3c4d283a5e:/src/main.sml diff --git a/src/main.sml b/src/main.sml index a673fde..c95ef31 100644 --- a/src/main.sml +++ b/src/main.sml @@ -954,6 +954,31 @@ fun requestReUsers () = OpenSSL.close bio end +fun requestFirewallRegen node = + let + val (user, context) = requestContext (fn () => ()) + val bio = OpenSSL.connect true (context, Domain.nodeIp node ^ ":" ^ Int.toString Config.slavePort) + (* Only supporting on slave nodes *) + + val _ = Msg.send (bio, MsgFirewallRegen) + + fun handleResult () = + case Msg.recv bio of + NONE => (print "Server closed connection unexpectedly.\n"; + OS.Process.failure) + | SOME m => + case m of + MsgOk => (print "Firewall regenerated.\n"; + OS.Process.success) + | MsgError s => (print ("Firewall regeneration failed: " ^ s ^ "\n"); + OS.Process.failure) + | _ => (print "Unexpected server reply.\n"; + OS.Process.failure) + in + handleResult() + before OpenSSL.close bio + end + structure SS = StringSet fun domainList dname =