summaryrefslogtreecommitdiff
path: root/net-vpn/wireguard/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-vpn/wireguard/files
reinit the tree, so we can have metadata
Diffstat (limited to 'net-vpn/wireguard/files')
-rw-r--r--net-vpn/wireguard/files/wireguard-openrc.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/net-vpn/wireguard/files/wireguard-openrc.sh b/net-vpn/wireguard/files/wireguard-openrc.sh
new file mode 100644
index 000000000000..9c53ef0ffa72
--- /dev/null
+++ b/net-vpn/wireguard/files/wireguard-openrc.sh
@@ -0,0 +1,45 @@
+# Copyright (c) 2016 Gentoo Foundation
+# All rights reserved. Released under the 2-clause BSD license.
+
+wireguard_depend()
+{
+ program /usr/bin/wg
+ after interface
+ before dhcp
+}
+
+wireguard_pre_start()
+{
+ [[ $IFACE == wg* ]] || return 0
+ ip link delete dev "$IFACE" type wireguard 2>/dev/null
+ ebegin "Creating WireGuard interface $IFACE"
+ if ! ip link add dev "$IFACE" type wireguard; then
+ eend $?
+ return $?
+ fi
+ eend 0
+
+ ebegin "Configuring WireGuard interface $IFACE"
+ set -- $(_get_array "wireguard_$IFVAR")
+ if [[ -f $1 && $# -eq 1 ]]; then
+ /usr/bin/wg setconf "$IFACE" "$1"
+ else
+ eval /usr/bin/wg set "$IFACE" "$@"
+ fi
+ if [ $? -eq 0 ]; then
+ _up
+ eend 0
+ return
+ fi
+ e=$?
+ ip link delete dev "$IFACE" type wireguard 2>/dev/null
+ eend $e
+}
+
+wireguard_post_stop()
+{
+ [[ $IFACE == wg* ]] || return 0
+ ebegin "Removing WireGuard interface $IFACE"
+ ip link delete dev "$IFACE" type wireguard
+ eend $?
+}