diff --git a/warp.sh b/warp.sh index a9e2633..da1422b 100644 --- a/warp.sh +++ b/warp.sh @@ -847,10 +847,11 @@ awg_load_clients() { awg_save_clients() { local content="" for ip in "${AWG_SELECTED_IPS[@]}"; do - content+="${ip}"$'\n' + content="${content}${ip}"$'\n' done - docker exec "$CONTAINER" sh -c "mkdir -p '${AWG_WARP_DIR}'" - echo -n "$content" | docker exec -i "$CONTAINER" sh -c "cat > '${AWG_WARP_CLIENTS}'" + docker exec "$CONTAINER" sh -c "mkdir -p '$AWG_WARP_DIR' && cat > '$AWG_WARP_CLIENTS' <<'CLEOF' +${content}CLEOF +" } awg_parse_clients_table() { @@ -1039,10 +1040,7 @@ awg_cleanup_rules() { awg_apply_rules() { awg_cleanup_rules [ ${#AWG_SELECTED_IPS[@]} -eq 0 ] && return 0 - if ! docker exec "$CONTAINER" sh -c "ip link show warp >/dev/null 2>&1"; then - return 0 - fi - docker exec "$CONTAINER" sh -c "ip route add default dev warp table 100 2>/dev/null || ip route replace default dev warp table 100" + docker exec "$CONTAINER" sh -c "ip route add default dev warp table 100 2>/dev/null || ip route replace default dev warp table 100 2>/dev/null || true" local prio=100 for ip in "${AWG_SELECTED_IPS[@]}"; do docker exec "$CONTAINER" sh -c "