diff options
Diffstat (limited to 'src/wg-quick/darwin.bash')
-rwxr-xr-x | src/wg-quick/darwin.bash | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/wg-quick/darwin.bash b/src/wg-quick/darwin.bash index cde1b54..26c6cd3 100755 --- a/src/wg-quick/darwin.bash +++ b/src/wg-quick/darwin.bash @@ -92,7 +92,7 @@ detect_launchd() { LAUNCHED_BY_LAUNCHD=1 break fi - done < <(launchctl procinfo $$ 2>/dev/null) + done < <(launchctl procinfo $$ 2>/dev/null); wait $! } read_bool() { @@ -132,14 +132,14 @@ del_routes() { local todelete=( ) destination gateway netif while read -r destination _ _ _ _ netif _; do [[ $netif == "$REAL_INTERFACE" ]] && todelete+=( "$destination" ) - done < <(netstat -nr -f inet) + done < <(netstat -nr -f inet); wait $! for destination in "${todelete[@]}"; do cmd route -q -n delete -inet "$destination" >/dev/null || true done todelete=( ) while read -r destination gateway _ netif; do [[ $netif == "$REAL_INTERFACE" || ( $netif == lo* && $gateway == "$REAL_INTERFACE" ) ]] && todelete+=( "$destination" ) - done < <(netstat -nr -f inet6) + done < <(netstat -nr -f inet6); wait $! for destination in "${todelete[@]}"; do cmd route -q -n delete -inet6 "$destination" >/dev/null || true done @@ -181,7 +181,7 @@ set_mtu() { defaultif="$netif" break fi - done < <(netstat -nr -f inet) + done < <(netstat -nr -f inet); wait $! [[ -n $defaultif && $(ifconfig "$defaultif") =~ mtu\ ([0-9]+) ]] && mtu="${BASH_REMATCH[1]}" [[ $mtu -gt 0 ]] || mtu=1500 mtu=$(( mtu - 80 )) @@ -197,14 +197,14 @@ collect_gateways() { [[ $destination == default ]] || continue GATEWAY4="$gateway" break - done < <(netstat -nr -f inet) + done < <(netstat -nr -f inet); wait $! GATEWAY6="" while read -r destination gateway _; do [[ $destination == default ]] || continue GATEWAY6="$gateway" break - done < <(netstat -nr -f inet6) + done < <(netstat -nr -f inet6); wait $! } collect_endpoints() { @@ -212,7 +212,7 @@ collect_endpoints() { while read -r _ endpoint; do [[ $endpoint =~ ^\[?([a-z0-9:.]+)\]?:[0-9]+$ ]] || continue ENDPOINTS+=( "${BASH_REMATCH[1]}" ) - done < <(wg show "$REAL_INTERFACE" endpoints) + done < <(wg show "$REAL_INTERFACE" endpoints); wait $! } declare -A SERVICE_DNS @@ -230,7 +230,7 @@ collect_new_service_dns() { get_response="$(cmd networksetup -getsearchdomains "$service")" [[ $get_response == *" "* ]] && get_response="Empty" [[ -n $get_response ]] && SERVICE_DNS_SEARCH["$service"]="$get_response" - done; } < <(networksetup -listallnetworkservices) + done; } < <(networksetup -listallnetworkservices); wait $! for service in "${!SERVICE_DNS[@]}"; do if ! [[ -n ${found_services["$service"]} ]]; then @@ -304,7 +304,7 @@ set_dns() { else cmd networksetup -setsearchdomains "$service" "${DNS_SEARCH[@]}" fi - ) + ); wait $! done } @@ -316,7 +316,7 @@ del_dns() { done < <( cmd networksetup -setdnsservers "$service" ${SERVICE_DNS["$service"]} || true cmd networksetup -setsearchdomains "$service" ${SERVICE_DNS_SEARCH["$service"]} || true - ) + ); wait $! done } @@ -339,7 +339,7 @@ monitor_daemon() { set_dns sleep 2 && kill -ALRM $pid 2>/dev/null & fi - done < <(route -n monitor)) & + done < <(route -n monitor); wait $!) & [[ -n $LAUNCHED_BY_LAUNCHD ]] || disown } @@ -367,7 +367,7 @@ add_route() { } set_config() { - cmd wg setconf "$REAL_INTERFACE" <(echo "$WG_CONFIG") + cmd wg setconf "$REAL_INTERFACE" <(echo "$WG_CONFIG"); wait $! } save_config() { @@ -375,7 +375,7 @@ save_config() { new_config=$'[Interface]\n' while read -r address; do [[ $address =~ inet6?\ ([^ ]+) ]] && new_config+="Address = ${BASH_REMATCH[1]}"$'\n' - done < <(ifconfig "$REAL_INTERFACE") + done < <(ifconfig "$REAL_INTERFACE"); wait $! # TODO: actually determine current DNS for interface for address in "${DNS[@]}"; do new_config+="DNS = $address"$'\n' @@ -458,7 +458,7 @@ cmd_up() { done set_mtu up_if - for i in $(while read -r _ i; do for i in $i; do [[ $i =~ ^[0-9a-z:.]+/[0-9]+$ ]] && echo "$i"; done; done < <(wg show "$REAL_INTERFACE" allowed-ips) | sort -nr -k 2 -t /); do + for i in $({ while read -r _ i; do for i in $i; do [[ $i =~ ^[0-9a-z:.]+/[0-9]+$ ]] && echo "$i"; done; done < <(wg show "$REAL_INTERFACE" allowed-ips); wait $!; } | sort -nr -k 2 -t /); do add_route "$i" done [[ $AUTO_ROUTE4 -eq 1 || $AUTO_ROUTE6 -eq 1 ]] && set_endpoint_direct_route |