diff --git a/src/wg-quick/openbsd.bash b/src/wg-quick/openbsd.bash index 9584902..3b90df2 100755 --- a/src/wg-quick/openbsd.bash +++ b/src/wg-quick/openbsd.bash @@ -100,10 +100,25 @@ get_real_interface() { } add_if() { - export WG_TUN_NAME_FILE="/var/run/wireguard/$INTERFACE.name" - mkdir -p "/var/run/wireguard/" - cmd "${WG_QUICK_USERSPACE_IMPLEMENTATION:-wireguard-go}" tun - get_real_interface + local index + echo "find wg" | config -e /bsd 2>/dev/null | grep "wg count 1" >/dev/null + if [[ $? == 0 ]]; then + REAL_INTERFACE="" + index=0 + while [[ $REAL_INTERFACE == "" ]]; do + ifconfig wg$index create + if [[ $? == 0 ]]; then + $REAL_INTERFACE="wg$index" + fi + index=$((index+1)) + done + echo "[+] Interface for $INTERFACE is $REAL_INTERFACE" >&2 + else + export WG_TUN_NAME_FILE="/var/run/wireguard/$INTERFACE.name" + mkdir -p "/var/run/wireguard/" + cmd "${WG_QUICK_USERSPACE_IMPLEMENTATION:-wireguard-go}" tun + get_real_interface + fi } del_routes() {