Commit Graph

214 Commits

Author SHA1 Message Date
cstantin e9b37f9a90 chore: fix .goreleaser.yaml 2026-06-24 18:14:13 +03:00
cstantin bcf9d26086 chore: use GITHUB_REPOSITORY env for Docker images and OCI label
- Removed hardcoded owner/name from release.github – not needed when using GITHUB_TOKEN.
- Replaced explicit repo strings with {{ .Env.GITHUB_REPOSITORY }} for Docker image names and the org.opencontainers.image.source label.
- Makes the config reusable across forks – no manual edits required when moving the project.
2026-06-24 13:18:27 +03:00
Anton 3c657fe565 Merge pull request #30 from samosvalishe/release-please--branches--master
chore(master): release 1.4.4
2026-06-24 11:42:06 +03:00
Anton 83a121ad2c chore(master): release 1.4.4 2026-06-24 11:36:21 +03:00
samosvalishe 384c350e7d fix: заменить устаревший token_type=messages на анонимные скоупы в VK авторизации 2026-06-24 11:35:59 +03:00
Anton 2a76159040 Merge pull request #29 from samosvalishe/release-please--branches--master
chore(master): release 1.4.3
2026-06-22 18:27:19 +03:00
Anton e0df871c0a chore(master): release 1.4.3 2026-06-22 18:26:11 +03:00
samosvalishe b0c3e65c40 fix: bump captcha 2026-06-22 18:25:43 +03:00
samosvalishe d8f0e7e995 fix: OBF_TIMING -> docker 2026-06-22 18:25:43 +03:00
Anton 9c7304787d Merge pull request #28 from samosvalishe/release-please--branches--master
chore(master): release 1.4.2
2026-06-22 18:05:22 +03:00
Anton 292012fa8c chore(master): release 1.4.2 2026-06-22 18:02:07 +03:00
samosvalishe d73f42603a fix: captcha 2026-06-22 18:01:16 +03:00
Anton 53d7fe8486 Merge pull request #24 from samosvalishe/release-please--branches--master
chore(master): release 1.4.1
2026-06-19 16:06:32 +03:00
Anton 181fb3d631 chore(master): release 1.4.1 2026-06-19 15:55:52 +03:00
samosvalishe b76e21266d refactor: единая константа версии VK API для calls.* 2026-06-19 15:55:06 +03:00
samosvalishe dd55d96846 chore: getCallPreview v5.282 2026-06-19 15:43:38 +03:00
samosvalishe ebb1f6bf07 fix: оставлены только VK app_id с доступом к calls.getAnonymousToken 2026-06-19 15:43:38 +03:00
Anton 1d19e47a29 Merge pull request #23 from samosvalishe/release-please--branches--master
chore(master): release 1.4.0
2026-06-19 15:13:41 +03:00
Anton d1d2794c47 chore(master): release 1.4.0 2026-06-19 15:12:23 +03:00
samosvalishe 2324a0482c docs: чинит таблицу флагов, описывает -links/-obf-timing/rtpopus3 2026-06-19 15:11:17 +03:00
samosvalishe e63c93ec41 test: покрытие multi.Provider и shape
multi: round-robin биекция, маршрутизация Handle/Reset, max backoff, panic.
shape: passthrough при interval=0, форвардинг WriteTo, обёртка listener.
2026-06-19 15:11:17 +03:00
samosvalishe e50febc834 fix: -obf-timing допустим только с -mode udp и включённой обфускацией
без RTP-профиля паковать нечего, а в tcp-режиме pacing ломает RTT/конгешн
KCP. Раньше флаг в tcp молча игнорировался. Валидация симметрична на
клиенте и сервере.
2026-06-19 15:11:17 +03:00
samosvalishe bafdcdd027 fix: устранены блокеры линтера в obf/multi
errcheck nolint на bufPool.Get в rtpopus3/listen.go; multi.MultiProvider
переименован в multi.Provider (revive stutter), дедуп vk.New в buildProvider.
2026-06-19 15:11:17 +03:00
samosvalishe 9564f3475f fix: потокобезопасность send-состояния obf-кодеков rtpopus3 и shape 2026-06-19 15:11:15 +03:00
Serj 1c58325862 feat: мультиплексирование звонков (#21) 2026-06-19 14:00:29 +03:00
Anton 58cfd31e7e Merge pull request #20 from samosvalishe/release-please--branches--master
chore(master): release 1.3.2
2026-06-17 22:51:22 +03:00
Anton 1e637c50d3 chore(master): release 1.3.2 2026-06-17 22:49:27 +03:00
samosvalishe 7d1ae10a47 fix(dnsdial): вернуть простую UDP-пробу auto до auto-пробы реального хоста 2026-06-17 22:49:00 +03:00
Anton f00465c9c2 Merge pull request #19 from samosvalishe/release-please--branches--master
chore(master): release 1.3.1
2026-06-17 22:06:22 +03:00
Anton ac4a9e0270 chore(master): release 1.3.1 2026-06-17 22:03:31 +03:00
samosvalishe 1ec4fd463d fix(dnsdial): не вешать старт auto на DoH-пробу 2026-06-17 22:03:03 +03:00
Anton d1105de5db Merge pull request #18 from samosvalishe/release-please--branches--master
chore(master): release 1.3.0
2026-06-17 10:15:07 +03:00
samosvalishe 5cbc0ef456 chore: captcha bump 2026-06-17 10:04:18 +03:00
Anton e6692115e0 chore(master): release 1.3.0 2026-06-17 10:04:12 +03:00
samosvalishe e503aaee33 style: ASCII-пунктуация 2026-06-17 10:03:41 +03:00
samosvalishe 69a68bbc31 feat(vkauth): флаг -browser и профиль Firefox
Флаг -browser chrome|firefox (default firefox, Chrome - escape-hatch), client-local для VK-auth, в freeturn:// URI не идёт. browserprofile.ForKind даёт канонные UA/JA3/Accept-Language; ApplyFhttp шлёт sec-ch-ua* только для Chrome (Firefox их не отправляет). dial.go выбирает profiles.Firefox_147 / Chrome_146 под UA.

Control-plane TLS-dial переведён на MultiSplitWriteConn (фрагментация SNI).
2026-06-17 10:03:41 +03:00
samosvalishe cc405100ab feat(netconn): анти-DPI мульти-сплит ClientHello по SNI
MultiSplitWriteConn парсит TLS ClientHello, находит SNI host_name и режет первый сегмент внутри него на ~трети с джиттером - registrable-домен гарантированно пересекает границу TCP-сегмента, DPI без реассемблинга не собирает hostname. Фоллбэк на одиночный рез offset 6, если SNI не найден.

turndial: STUN-split offset рандомизирован в [5,7] (рез внутри magic cookie), убран статический фингерпринт фикс-offset.
2026-06-17 10:03:41 +03:00
samosvalishe 5851ad6959 docs: профиль rtpopus2 в таблицах флагов и режимов
modes/flags/deploy/uri - добавлен rtpopus2 (none | rtpopus | rtpopus2).
2026-06-17 10:03:41 +03:00
samosvalishe f8e840ccdf feat(wire): профиль rtpopus2 и интерфейс Codec
rtpopus2 несёт RTP header extension (RFC 8285 one-byte: X=1,
ssrc-audio-level + transport-cc) - ближе к современному WebRTC, чем
rtpopus (X=0). Wire несовместим с rtpopus, overhead 52 против 40.

wire.Codec - общий контракт профиля; NewClientCodec/Listen диспатчат
по -obf-profile, RelayPacketConn обобщён по Codec. Профиль тянется
в pipeline (раньше шёл только ключ obf).

Попутно: tcpfwd на 1-based streamID (единый базис с udprelay для
CacheID); cmd/client задаёт probe-host login.vk.ru для vk.
2026-06-17 10:03:41 +03:00
samosvalishe 1ec2b2610a feat(dnsdial): auto-проба реального хоста с DoH recovery
auto-режим пробил UDP/53 нейтральным dns.google и залипал на UDP
навсегда. При выборочной фильтрации (dns.google резолвится, целевой
хост - нет) это вело к таймаутам резолва. Проба теперь валидирует
резолв реального хоста; при провале UDP уходит на DoH. Добавлен
рантайм-recovery в обе стороны: серия неудач UDP -> DoH, периодическая
перепроба DoH -> UDP.
2026-06-17 10:03:40 +03:00
samosvalishe 745539dc11 fix(vkauth): группировка кэша по 1-based streamID
CacheID делил streamID/streamsPerCache, но streamID 1-based: поток
с номером, кратным streamsPerCache, переваливал в соседний bucket
и тянул лишнюю VK-авторизацию (заметно при -n == -streams-per-cred).
Теперь (streamID-1)/streamsPerCache - блок 1..N делит один кэш.
2026-06-17 10:03:40 +03:00
samosvalishe 4084cce091 fix: миграция на ru домен 2026-06-17 10:03:40 +03:00
Anton a82c472e67 Merge pull request #17 from samosvalishe/release-please--branches--master
chore(master): release 1.2.0
2026-06-15 11:09:26 +03:00
Anton 02cb2488b4 chore(master): release 1.2.0 2026-06-11 23:49:58 +03:00
samosvalishe 402606e4f7 feat(uri): переход на base64url(json), расширенные параметры
freeturn:// теперь несёт base64url(json) вместо query-string. Поля:
v, provider, peer, transport, mode, bond, obf, key, n, spc, cid,
listen, dns, dnss, mcap, name. Версионирован полем v=1.

config.PeekSubURL: pre-parse -sub до ParseClient, URI первой ноды
подсовывается позиционным аргументом - применение общим путём.
ParseClient применяет все новые поля URI (N, StreamsPerCred,
ClientID, Listen, DNSMode, DNSServers, ManualCaptcha, transport).
2026-06-11 23:49:31 +03:00
Anton d032eb4c7a Merge pull request #16 from samosvalishe/release-please--branches--master
chore(master): release 1.1.1
2026-06-11 21:09:27 +03:00
Anton d806917a99 chore(master): release 1.1.1 2026-06-11 21:06:46 +03:00
samosvalishe 40796b4844 fix(dnsdial): убрать динамический фоллбэк на DoH
Откат: динамическое переключение ломало one-shot автовыбор UDP/53. Возврат к sticky-пробе при старте.
2026-06-11 21:04:58 +03:00
Anton 418bb93db2 Merge pull request #14 from samosvalishe/release-please--branches--master
chore(master): release 1.1.0
2026-06-11 19:33:59 +03:00
Anton d642ac2a6f chore(master): release 1.1.0 2026-06-11 19:30:01 +03:00