summaryrefslogtreecommitdiff
path: root/inet2.initd
diff options
context:
space:
mode:
Diffstat (limited to 'inet2.initd')
-rwxr-xr-xinet2.initd119
1 files changed, 0 insertions, 119 deletions
diff --git a/inet2.initd b/inet2.initd
deleted file mode 100755
index 5fe8c7c..0000000
--- a/inet2.initd
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/sbin/openrc-run
-name="inet2"
-description="Sets up wireguard interfaces connected via the host's internet connection"
-
-extra_started_commands="reloadwg"
-
-run() {
- printf '$ \x1b[32;1m%s\x1b[0m\n' "$*"
- "$@"
-}
-step() {
- printf '\x1b[34;1m>> %s\x1b[0m\n' "$*"
-}
-
-getval() {
- /usr/local/bin/config.awk /run/inet2/inet2.conf "$@"
-}
-
-runscripts() {
- if [ -n "$(getval "interface $2" "$1")" ]; then
- step "Running $1 for $2"
- getval "interface $2" "$1" | while read -r line; do
- (eval "$line")
- done
- fi
-}
-
-
-
-start() {
-
- for file in /sys/class/net/*; do # Clear all wireguard interfaces
- type=$(cat "$file/type")
- if [ "$type" = "65534" ]; then
- ifname="$(basename $file)"
- ip link del "$ifname"
- fi
- done
-
- rm -rf /run/inet2/config 2>/dev/null
- rm -rf /run/inet2/wg 2>/dev/null
- cp /config/inet2.conf /run/inet2/inet2.conf
- mkdir /run/inet2/wg
-
- getval Loopback | while read -r addr; do
- run ip addr add "$addr" dev lo
- done
-
- getval interface | while read -r inter; do
- step "Generating config for $inter"
- run mkwgconfig.sh "$inter" /run/inet2/wg/"$inter"
-
- # create the wireguard interface *in the default namespace*
- step "Adding Wireguard interface $inter"
- run ip link add name "$inter" type wireguard
-
- # set up the new network from the config
- step "Setting Wireguard config for $inter"
- run wg setconf "$inter" /run/inet2/wg/"$inter"
-
- # the config doesn't actually add any addresses, do that here
- step "Adding host addresses for $inter"
- getval "interface $inter" Address | while read -r addr; do
- run ip addr add "$addr" dev "$inter"
- done
-
- runscripts PreUp "$inter"
-
- step "Bringing interface up"
- run ip link set dev "$inter" up
-
- getval "interface $inter" Route | while read -r line; do
- read -r route via addr2 < <(printf "%s" "$line")
- if [ "$via" = "via" ]; then
- run ip route add "$route" via "$addr2" dev "$inter"
- else
- run ip route add "$route" dev "$inter"
- fi
- done
-
- runscripts PostUp "$inter"
- done
- step "Done!"
-}
-
-stop() {
- if [ -f /run/inet2/inet2.conf ]; then
- getval Loopback | while read -r addr; do
- run ip addr del "$addr" dev lo
- done
-
- getval interface | while read -r inter; do
- runscripts PreDown "$inter"
-
- step "Bringing $inter down"
- run ip link del "$inter"
-
- runscripts PostDown "$inter"
- done
-
- rm -rf /run/inet2/inet2.conf
- fi
-}
-
-# just reloads the wireguard configs for existing interfaces
-# for if a peer's domain name resolves to a different ip address now
-# and it needs to be re-resolved without taking down the connection
-reloadwg() {
- if [ -f /run/inet2/inet2.conf ]; then
- getval interface | while read -r inter; do
- step "Generating config for $inter"
- run mkwgconfig.sh "$inter" /run/inet2/wg/"$inter" /config/inet2.conf
-
- step "Setting Wireguard config for $inter"
- run wg setconf "$inter" /run/inet2/wg/"$inter"
- done
- fi
-}
-