38 lines
844 B
Bash
Executable File
38 lines
844 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
if [ ! -f "$1" ]; then
|
|
echo "usage: $(basename "$0") FILE"
|
|
exit 1
|
|
fi
|
|
|
|
. "$(readlink -f "$1")"
|
|
|
|
DEV="gt${HOST:+c}-$(basename "$1")"
|
|
|
|
# Setting BIND is like going to 'expert mode'
|
|
# This helper is pretty stupid and still needs some work
|
|
if [ -n "$HOST" ]; then
|
|
if [ -z "$PREF" ]; then
|
|
PREF=$(ip rule | awk '/from all lookup main/{print $1; exit}' | tr -d :)
|
|
PREF=$((PREF-1))
|
|
fi
|
|
if [ -z "$BIND" ]; then
|
|
BIND=$(ip route get "$HOST" | awk '/src/{getline;print $0}' RS=' ')
|
|
ip rule add from "$BIND" table main pref "$((PREF-1))" || true
|
|
fi
|
|
ip rule add from all table 200 pref "$PREF" || true
|
|
fi
|
|
|
|
exec glorytun \
|
|
v4only \
|
|
keyfile "$1".key \
|
|
dev "$DEV" \
|
|
${HOST:+host "$HOST"} \
|
|
${PORT:+port "$PORT"} \
|
|
${BIND:+bind "$BIND"} \
|
|
${BIND_PORT:+bind-port "$BIND_PORT"} \
|
|
${MTU:+mtu "$MTU"} \
|
|
${MTU_AUTO:+mtu-auto}
|