mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
2167ba990b
- server/main.go → cmd/vk-turn-server/main.go. Несёт остаточные правки сервера
(drop параметра useBond, убрано поле startup-лога).
- client/internal/{browserprofile,captcha,dnsdial,namegen,vkauth} →
internal/client/* (единая иерархия internal/; параллельное дерево
client/internal/ убрано). Все Go import-пути обновлены.
- .github/workflows/{ci,release}.yml, Dockerfile, README.md — пути сборки
переключены на ./cmd/vk-turn-client и ./cmd/vk-turn-server.
- README: убран устаревший пример "server -vless-bond" (флаг удалён ранее);
добавлены рецепты сборки .so для Android arm64 + Linux arm64/amd64 под
ручную упаковку для мобилок.
- internal/proxy/udp/udp.go, internal/config/config.go: обновлены устаревшие
ссылки client/internal/* в doc-комментариях.
- notes/GLOSSARY.md (новый, ~20 терминов): фиксирует DTLS-как-обфускацию,
wrap=AEAD-не-XOR, четыре значения "client", три значения "stream", пять
ортогональных переключателей "mode", заметки по сборке libvkturn.so, iSH,
хрупкость init globalBondRegistry и удаления флагов.
cmd/vk-turn-client/ намеренно оставлен вне этого коммита; сворачивается вместе
с извлечением ручной captcha в следующем коммите, т.к. переименование и правки
импортов manualcaptcha.* попадают в один файл.
Wire-форматы не тронуты. Поведение не изменено кроме уже закоммиченных
удалений CLI.
35 lines
848 B
Go
35 lines
848 B
Go
package dnsdial
|
|
|
|
import (
|
|
"net"
|
|
"sync"
|
|
)
|
|
|
|
var (
|
|
dohResolverOnce sync.Once
|
|
dohResolverInstance *DohResolver
|
|
)
|
|
|
|
func sharedDohResolver() *DohResolver {
|
|
dohResolverOnce.Do(func() {
|
|
dohResolverInstance = NewDohResolver(nil)
|
|
})
|
|
return dohResolverInstance
|
|
}
|
|
|
|
// AppDialer returns the net.Dialer used by tls-client and other HTTP callers.
|
|
// DNS transport is selected by mode (udp | doh | auto).
|
|
func AppDialer(mode string) net.Dialer {
|
|
return buildDialer(mode, sharedDohResolver())
|
|
}
|
|
|
|
// InstallGlobalResolver wires net.DefaultResolver to the same DNS transport
|
|
// as AppDialer, so third-party libs that build their own http.Client without
|
|
// our Dialer still use DoH / auto-fallback instead of the OS resolver.
|
|
func InstallGlobalResolver(mode string) {
|
|
d := AppDialer(mode)
|
|
if d.Resolver != nil {
|
|
net.DefaultResolver = d.Resolver
|
|
}
|
|
}
|