mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
40000fde5d
VK отдаёт несколько relay-адресов, но стрим использовал ровно один (streamID%n). Если этот IP душит DPI/RST — allocate падает без альтернативы. Credentials несёт список адресов (primary-first по streamID), DialTURN пробует кандидатов по очереди и берёт первый успешный allocate. Балансировка relay-IP по стримам сохранена, остальные адреса — фоллбэк. HostOverride (-turn) схлопывает список до одного адреса.
20 lines
431 B
Go
20 lines
431 B
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestDialTURNNoCandidates(t *testing.T) {
|
|
t.Parallel()
|
|
getCreds := func(context.Context, int) (string, string, []string, error) {
|
|
return "u", "p", nil, nil
|
|
}
|
|
peer := &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 1}
|
|
_, err := DialTURN(context.Background(), "", "", false, peer, 0, getCreds)
|
|
if err == nil {
|
|
t.Fatal("expected error on empty candidate list")
|
|
}
|
|
}
|