summaryrefslogtreecommitdiff
path: root/meta-google/recipes-google/nftables/files/nft-configure.sh
diff options
context:
space:
mode:
Diffstat (limited to 'meta-google/recipes-google/nftables/files/nft-configure.sh')
-rw-r--r--meta-google/recipes-google/nftables/files/nft-configure.sh14
1 files changed, 9 insertions, 5 deletions
diff --git a/meta-google/recipes-google/nftables/files/nft-configure.sh b/meta-google/recipes-google/nftables/files/nft-configure.sh
index 05bb23d8b..8c8e058b7 100644
--- a/meta-google/recipes-google/nftables/files/nft-configure.sh
+++ b/meta-google/recipes-google/nftables/files/nft-configure.sh
@@ -8,10 +8,14 @@ for dir in /run/nftables /etc/nftables /usr/share/nftables; do
done
let i+=1
done
-rc=0
-nft flush ruleset || rc=$?
+
+rules=""
+trap 'rm -f -- "$rules"' TERM INT EXIT ERR
+rules="$(mktemp)" || exit
+echo 'flush ruleset' >"$rules"
for key in $(printf "%s\n" "${!basemap[@]}" | sort -r); do
- echo "Executing ${basemap[$key]}" >&2
- nft -f "${basemap[$key]}" || rc=$?
+ echo "Loading ${basemap[$key]}" >&2
+ echo '' >>"$rules"
+ cat "${basemap[$key]}" >>"$rules"
done
-exit $rc
+nft -f "$rules" || exit