From 302e24b8df0888126b672a6a1a4f79b69770c216 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Wed, 24 Sep 2025 14:53:40 +0300 Subject: [PATCH] Update iptables esvm service --- pkg.info | 1 + source-files/iptables-flush.sh | 14 ++++++++++++++ source-files/iptables.esv | 7 ++++--- source-files/iptables.sh | 30 ------------------------------ source.sh | 2 +- 5 files changed, 20 insertions(+), 34 deletions(-) create mode 100644 source-files/iptables-flush.sh delete mode 100755 source-files/iptables.sh diff --git a/pkg.info b/pkg.info index 6f4f3ad..35c890c 100644 --- a/pkg.info +++ b/pkg.info @@ -1,6 +1,7 @@ name: iptables description: userspace CLI program used to configure the Linux packet filtering ruleset version: 1.8.11 +revision: 2 url: https://www.netfilter.org/projects/iptables/index.html license: GPL2-only architecture: any diff --git a/source-files/iptables-flush.sh b/source-files/iptables-flush.sh new file mode 100644 index 0000000..9f22879 --- /dev/null +++ b/source-files/iptables-flush.sh @@ -0,0 +1,14 @@ +# Flush iptables (Code from archlinux) +iptables=ip$1tables +if ! type -p "$iptables" &>/dev/null; then + echo "error: invalid argument" + exit 1 +fi + +while read -r table; do + tables+=("/usr/share/iptables/empty-$table.rules") +done <"/proc/net/ip$1_tables_names" + +if (( ${#tables[*]} )); then + cat "${tables[@]}" | "$iptables-restore" +fi diff --git a/source-files/iptables.esv b/source-files/iptables.esv index 0db14aa..212d68c 100644 --- a/source-files/iptables.esv +++ b/source-files/iptables.esv @@ -1,5 +1,6 @@ name: iptables description: IPv4 Packet Filtering Framework -type: background -start_cmd: /etc/esvm/scripts/iptables.sh -exit_method: kill +type: simple +start_cmd: /usr/sbin/iptables-restore /etc/iptables/iptables.rules +stop_cmd: /etc/esvm/scripts/iptables-flush.sh +exit_method: stop_command diff --git a/source-files/iptables.sh b/source-files/iptables.sh deleted file mode 100755 index d583ff6..0000000 --- a/source-files/iptables.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -stop() { - # Flush iptables (Code from archlinux) - iptables=ip$1tables - if ! type -p "$iptables" &>/dev/null; then - echo "error: invalid argument" - exit 1 - fi - - while read -r table; do - tables+=("/usr/share/iptables/empty-$table.rules") - done <"/proc/net/ip$1_tables_names" - - if (( ${#tables[*]} )); then - cat "${tables[@]}" | "$iptables-restore" - fi - - # Clear the trap - trap - SIGINT SIGTERM - kill -- -$(pgrep iptables.sh) -} - -/usr/sbin/iptables-restore /etc/iptables/iptables.rules - -# Run stop function when SIGINT or SIGTERM signals are caught -trap "stop $1" SIGINT SIGTERM -sleep infinity - - diff --git a/source.sh b/source.sh index adafb83..ab0f378 100644 --- a/source.sh +++ b/source.sh @@ -27,8 +27,8 @@ package() { make DESTDIR="$BPM_OUTPUT" install # Install esvm service + install -Dm755 "$BPM_WORKDIR"/iptables-flush.sh "$BPM_OUTPUT"/etc/esvm/scripts/iptables-flush.sh install -Dm644 "$BPM_WORKDIR"/iptables.esv "$BPM_OUTPUT"/etc/esvm/services/iptables.esv - install -Dm755 "$BPM_WORKDIR"/iptables.sh "$BPM_OUTPUT"/etc/esvm/scripts/iptables.sh # Rules from Arch Linux install -Dm644 "$BPM_WORKDIR"/rules/empty.rules "$BPM_OUTPUT"/etc/iptables/iptables.rules