commit:     9ef4fb84a7c1848c067f89f5510f448fb04c5c7a
Author:     Andrey Volkov <volkov.am <AT> ekb-info <DOT> ru>
AuthorDate: Tue Sep 28 13:43:52 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri May 24 05:51:59 2024 +0000
URL:        https://gitweb.gentoo.org/proj/netifrc.git/commit/?id=9ef4fb84

Add type_${IFVAR}=wireguard for arbitrary wireguard interface names

Signed-off-by: Andrey Volkov <volkov <AT> ekb-info.ru>

 net/wireguard.sh | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/net/wireguard.sh b/net/wireguard.sh
index 301836d..269c8f0 100644
--- a/net/wireguard.sh
+++ b/net/wireguard.sh
@@ -9,9 +9,15 @@ wireguard_depend()
        before interface
 }
 
+_is_wireguard() {
+       is_interface_type wireguard
+}
+
 wireguard_pre_start()
 {
-       [ "${IFACE#wg}" != "$IFACE" ] || return 0
+       local wireguard=
+       eval wireguard=\$type_${IFVAR}
+       [ "${wireguard}" = "wireguard" -o "${IFACE#wg}" != "$IFACE" ] || return 0
 
        ip link delete dev "$IFACE" type wireguard 2>/dev/null
        ebegin "Creating WireGuard interface $IFACE"
@@ -35,6 +41,7 @@ wireguard_pre_start()
                e=$?
                if [ $e -eq 0 ]; then
                        eend $e
+                       set_interface_type wireguard
                        return $e
                fi
        fi
@@ -45,7 +52,7 @@ wireguard_pre_start()
 
 wireguard_post_stop()
 {
-       [ "${IFACE#wg}" != "$IFACE" ] || return 0
+       _is_wireguard || [ "${IFACE#wg}" != "$IFACE" ] || return 0
 
        ebegin "Removing WireGuard interface $IFACE"
        ip link delete dev "$IFACE" type wireguard

Reply via email to