Files
free-turn-proxy/scripts/routes-macos.sh
samosvalishe 8b2e028f99 fix: устранить замечания комплексной проверки
Критичное:
- go.mod: версия 1.25.5→1.25.0 (go mod tidy); Dockerfile: тег 1.25
- release.yml: go-version 1.25.5 → stable
- удалён temp-файл types.go.tmp.18500.1c9f4278a15a
- udprelay/loop.go: defer conn1/conn2.Close() при сбое Dial; лог write-error

Безопасность/код:
- browserprofile: пермиссии 0644→0600
- bondserver: once.Do перед go readLane (ordering fix)
- cmd/server: err= → err:= (shadow fix в AfterFunc)
- vkauth/client: vkDelayRandom ctx-aware (возвращает error)
- captcha/manual: whitelist хостов в /generic_proxy (SSRF mitigation)

Инфра:
- .dockerignore: исключить .git/.github/notes/dist из build context
- docker-compose.yml: env_file .env для OBF_KEY
- entrypoint.sh: позиционные аргументы вместо unquoted vars; валидация host:port

CI:
- ci.yml: исправлен путь go module cache (~/go/pkg/mod); добавлен -race
- .gitignore: добавлены /dist/, *.test, coverage.out, .env, *.tmp
- .golangci.yml: добавлены gosec и staticcheck
- routes-macos.sh: set -eu вместо set -u

Код:
- bondclient/bondserver: errors.Is(err, io.EOF) вместо err != io.EOF
- cmd/client: константа dtlsHandshakeConcurrency для HandshakeSem

Доки:
- quickstart.md: добавлен Intel Mac (darwin-amd64)
- build.md: версия Go, Windows/macOS cross-compile инструкции
- flags.md: уточнено описание -bond
2026-05-21 20:14:45 +03:00

43 lines
1.2 KiB
Bash

#!/bin/zsh
# Usage: ./client -debug ... 2>&1 | ./scripts/routes-macos.sh
set -eu
default_info="$(route -n get default 2>/dev/null || true)"
default_if="$(printf '%s\n' "$default_info" | awk '/interface:/{print $2; exit}')"
gateway="$(printf '%s\n' "$default_info" | awk '/gateway:/{print $2; exit}')"
if [[ -n "${default_if:-}" && "$default_if" == utun* ]]; then
echo "Default route is currently $default_if. Disconnect WireGuard/VPN first." >&2
exit 1
fi
if [[ -z "${gateway:-}" ]]; then
echo "Could not determine normal default gateway." >&2
exit 1
fi
while IFS= read -r line; do
line="${line//$'\r'/}"
remote="$(printf '%s\n' "$line" | sed -nE '
s/.*TURN server IP: (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\1/p
t done
s/.*relayed-address=(([0-9]{1,3}\.){3}[0-9]{1,3}):[0-9]+.*/\1/p
t done
s/^(([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2})$/\1/p
t done
s/^(([0-9]{1,3}\.){3}[0-9]{1,3})$/\1/p
:done
')"
[[ -z "$remote" ]] && continue
if [[ "$remote" == */* ]]; then
sudo route -n delete -net "$remote" >/dev/null 2>&1 || true
sudo route -n add -net "$remote" "$gateway" || true
else
sudo route -n delete -host "$remote" >/dev/null 2>&1 || true
sudo route -n add -host "$remote" "$gateway" || true
fi
done