From 0cace145fed5c0e64f9fbf4295be5264582517e8 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 14 Nov 2023 16:18:17 +0100 Subject: wip --- 6/firewall.pl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 6/firewall.pl (limited to '6/firewall.pl') diff --git a/6/firewall.pl b/6/firewall.pl new file mode 100644 index 0000000..d76e2d1 --- /dev/null +++ b/6/firewall.pl @@ -0,0 +1,24 @@ +% vim set ft=prolog + +% rule(src, dst, proto, port, source(..)). + +:- module(firewall, [ + fw_rule/2, + retract_all_from/1]). + +:- use_module(hosts, [ + router_link/3]). + +:- dynamic fw_rule/2. + +rule_is_from(fw_rule(_, Attr), From) :- Attr.from=From. + +rules_from(From, Rules) :- + findall(fw_rule(Host, Attr), (fw_rule(Host, Attr), Attr.from=From), Rules). + +retract_all_from(From) :- + rules_from(From, Rules), + retract_rules(Rules). + +retract_rules([R|Rules]) :- retract(R), retract_rules(Rules). +retract_rules([]). -- cgit v1.2.3