mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
chore: правка форматирования
This commit is contained in:
+12
-12
@@ -122,14 +122,14 @@ func main() {
|
||||
BondHandler: bondH.Handle,
|
||||
}
|
||||
tcpParams := &tcpfwd.Params{
|
||||
Host: cfg.TURN.Host,
|
||||
Port: cfg.TURN.Port,
|
||||
Link: cfg.VK.Link,
|
||||
Host: cfg.TURN.Host,
|
||||
Port: cfg.TURN.Port,
|
||||
Link: cfg.VK.Link,
|
||||
TransportUDP: cfg.TURN.TransportUDP,
|
||||
ObfKey: cfg.Obf.Key,
|
||||
GetCreds: tcpfwd.GetCredsFunc(vkAuth.GetCredentials),
|
||||
KCPProfile: cfg.KCP.Profile,
|
||||
KCPFEC: cfg.KCP.FEC,
|
||||
ObfKey: cfg.Obf.Key,
|
||||
GetCreds: tcpfwd.GetCredsFunc(vkAuth.GetCredentials),
|
||||
KCPProfile: cfg.KCP.Profile,
|
||||
KCPFEC: cfg.KCP.FEC,
|
||||
}
|
||||
if err := tcpfwd.Run(ctx, tcpDeps, tcpParams, peer, cfg.Proxy.Listen, cfg.TURN.N, cfg.Proxy.Mode == config.ProxyModeTCPFwdBond); err != nil {
|
||||
logger.Errorf("tcpfwd: %v", err)
|
||||
@@ -143,12 +143,12 @@ func main() {
|
||||
HandshakeSem: make(chan struct{}, dtlsHandshakeConcurrency),
|
||||
}
|
||||
udpParams := &udprelay.Params{
|
||||
Host: cfg.TURN.Host,
|
||||
Port: cfg.TURN.Port,
|
||||
Link: cfg.VK.Link,
|
||||
Host: cfg.TURN.Host,
|
||||
Port: cfg.TURN.Port,
|
||||
Link: cfg.VK.Link,
|
||||
TransportUDP: cfg.TURN.TransportUDP,
|
||||
ObfKey: cfg.Obf.Key,
|
||||
GetCreds: udprelay.GetCredsFunc(vkAuth.GetCredentials),
|
||||
ObfKey: cfg.Obf.Key,
|
||||
GetCreds: udprelay.GetCredsFunc(vkAuth.GetCredentials),
|
||||
}
|
||||
if err := udprelay.Run(ctx, udpDtlsDialer, vkAuth, logger, &connectedStreams, udpParams, peer, cfg.Proxy.Listen, cfg.TURN.N); err != nil {
|
||||
if errors.Is(err, udprelay.ErrFatal) {
|
||||
|
||||
+1
-1
@@ -11,6 +11,7 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/pion/dtls/v3"
|
||||
"github.com/samosvalishe/btp/internal/config"
|
||||
"github.com/samosvalishe/btp/internal/logx"
|
||||
"github.com/samosvalishe/btp/internal/proxy/bondserver"
|
||||
@@ -18,7 +19,6 @@ import (
|
||||
"github.com/samosvalishe/btp/internal/proxy/udpserver"
|
||||
"github.com/samosvalishe/btp/internal/transport/dtlsdial"
|
||||
"github.com/samosvalishe/btp/internal/wire/srtpmimicry"
|
||||
"github.com/pion/dtls/v3"
|
||||
)
|
||||
|
||||
// version is populated at build time via -ldflags "-X main.version=...".
|
||||
|
||||
@@ -364,9 +364,9 @@ func dohForwarderDial(r *DohResolver) dialFunc {
|
||||
}
|
||||
|
||||
const (
|
||||
DNSModePlain = "plain"
|
||||
DNSModeDoH = "doh"
|
||||
DNSModeAuto = "auto"
|
||||
DNSModePlain = "plain"
|
||||
DNSModeDoH = "doh"
|
||||
DNSModeAuto = "auto"
|
||||
)
|
||||
|
||||
var udpDNSServersPtr atomic.Pointer[[]string]
|
||||
|
||||
@@ -20,7 +20,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
dnsModePlain = "plain"
|
||||
dnsModePlain = "plain"
|
||||
dnsModeDoH = "doh"
|
||||
dnsModeAuto = "auto"
|
||||
defaultStreamsPerCache = 10
|
||||
@@ -39,10 +39,10 @@ const (
|
||||
|
||||
// TURNOpts — опции TURN-сервера (куда и как подключаться).
|
||||
type TURNOpts struct {
|
||||
Host string // -turn: переопределить IP/host TURN-сервера
|
||||
Port string // -port: переопределить порт TURN
|
||||
Host string // -turn: переопределить IP/host TURN-сервера
|
||||
Port string // -port: переопределить порт TURN
|
||||
TransportUDP bool // -transport udp: подключение к TURN по UDP (по умолчанию TCP/TLS)
|
||||
N int // -n: число TURN-потоков (только клиент)
|
||||
N int // -n: число TURN-потоков (только клиент)
|
||||
}
|
||||
|
||||
// ObfOpts — опции обфускации TURN-payload (SRTP-mimicry).
|
||||
@@ -135,10 +135,10 @@ func ParseClient(args []string, errOut io.Writer) (*Client, error) {
|
||||
|
||||
c := &Client{
|
||||
TURN: TURNOpts{
|
||||
Host: *host,
|
||||
Port: *port,
|
||||
Host: *host,
|
||||
Port: *port,
|
||||
TransportUDP: *transportFlag == "udp",
|
||||
N: *n,
|
||||
N: *n,
|
||||
},
|
||||
Obf: ObfOpts{
|
||||
Mode: *wrapMode,
|
||||
|
||||
@@ -38,7 +38,7 @@ func (l *stdLogger) Debugf(format string, v ...any) {
|
||||
func (*stdLogger) Infof(format string, v ...any) { log.Printf("[INFO] "+format, v...) }
|
||||
func (*stdLogger) Warnf(format string, v ...any) { log.Printf("[WARN] "+format, v...) }
|
||||
func (*stdLogger) Errorf(format string, v ...any) { log.Printf("[ERROR] "+format, v...) }
|
||||
func (l *stdLogger) DebugEnabled() bool { return l.debug }
|
||||
func (l *stdLogger) DebugEnabled() bool { return l.debug }
|
||||
|
||||
// OrNop возвращает l, если он не nil, иначе Nop. Используется в конструкторах
|
||||
// пакетов, принимающих nullable Logger.
|
||||
|
||||
@@ -234,7 +234,9 @@ func writeBondFrameToNextLane(ctx context.Context, lanes []*lane, typ byte, seq
|
||||
|
||||
func (h *Handler) copyBondToTCP(ctx context.Context, connID uint64, tcpConn net.Conn, recvCh <-chan bondframe.Frame) {
|
||||
chunks := bondframe.Reorder(ctx, tcpConn, recvCh, bondframe.ReorderHooks{
|
||||
OnOverflow: func(_ int) { h.Deps.log().Errorf("[bond %d] pending map overflow (>%d), closing", connID, bondframe.PendingCap) },
|
||||
OnOverflow: func(_ int) {
|
||||
h.Deps.log().Errorf("[bond %d] pending map overflow (>%d), closing", connID, bondframe.PendingCap)
|
||||
},
|
||||
OnUnknownType: func(typ byte) { h.Deps.log().Errorf("[bond %d] unknown frame type %d", connID, typ) },
|
||||
OnWriteError: func(err error) { h.Deps.log().Errorf("[bond %d] local TCP write error: %v", connID, err) },
|
||||
OnCloseWrite: h.Deps.log().Debugf,
|
||||
|
||||
@@ -266,7 +266,9 @@ func (c *serverConn) run() {
|
||||
|
||||
func (c *serverConn) copyBondToBackend(backendConn net.Conn) {
|
||||
chunks := bondframe.Reorder(c.ctx, backendConn, c.recvCh, bondframe.ReorderHooks{
|
||||
OnOverflow: func(_ int) { c.deps.log().Errorf("[bond %d] pending map overflow (>%d), closing", c.id, bondframe.PendingCap) },
|
||||
OnOverflow: func(_ int) {
|
||||
c.deps.log().Errorf("[bond %d] pending map overflow (>%d), closing", c.id, bondframe.PendingCap)
|
||||
},
|
||||
OnUnknownType: func(typ byte) { c.deps.log().Errorf("[bond %d] unknown frame type %d", c.id, typ) },
|
||||
OnWriteError: func(err error) { c.deps.log().Errorf("[bond %d] backend write error: %v", c.id, err) },
|
||||
OnCloseWrite: c.deps.log().Debugf,
|
||||
|
||||
@@ -23,14 +23,14 @@ type GetCredsFunc = common.GetCredsFunc
|
||||
|
||||
// Params — конфигурация TURN/wrap для пула.
|
||||
type Params struct {
|
||||
Host string
|
||||
Port string
|
||||
Link string
|
||||
Host string
|
||||
Port string
|
||||
Link string
|
||||
TransportUDP bool
|
||||
ObfKey []byte
|
||||
GetCreds GetCredsFunc
|
||||
KCPProfile kcptun.Profile
|
||||
KCPFEC kcptun.FEC
|
||||
ObfKey []byte
|
||||
GetCreds GetCredsFunc
|
||||
KCPProfile kcptun.Profile
|
||||
KCPFEC kcptun.FEC
|
||||
}
|
||||
|
||||
// BondHandler распределяет одно принятое TCP-соединение по всем активным сессиям пула.
|
||||
@@ -278,4 +278,3 @@ func createSmuxSession(ctx context.Context, deps *Deps, params *Params, peer *ne
|
||||
|
||||
return smuxSess, cleanup, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -129,4 +129,3 @@ func (c *prefixedConn) Read(p []byte) (int, error) {
|
||||
}
|
||||
return c.Conn.Read(p)
|
||||
}
|
||||
|
||||
|
||||
@@ -33,12 +33,12 @@ type AuthHandler interface {
|
||||
|
||||
// Params — per-stream конфигурация TURN/wrap, общая для DTLS и TURN циклов.
|
||||
type Params struct {
|
||||
Host string
|
||||
Port string
|
||||
Link string
|
||||
Host string
|
||||
Port string
|
||||
Link string
|
||||
TransportUDP bool
|
||||
ObfKey []byte
|
||||
GetCreds GetCredsFunc
|
||||
ObfKey []byte
|
||||
GetCreds GetCredsFunc
|
||||
}
|
||||
|
||||
// ErrFatal возвращается из Run, когда поток встречает условие, требующее
|
||||
|
||||
@@ -121,7 +121,6 @@ func (c *CountingConn) Read(p []byte) (int, error) {
|
||||
return n, err
|
||||
}
|
||||
|
||||
|
||||
func (c *CountingConn) Write(p []byte) (int, error) {
|
||||
n, err := c.Conn.Write(p)
|
||||
c.Stats.AddTx(n)
|
||||
|
||||
@@ -13,9 +13,9 @@ import (
|
||||
"net"
|
||||
"time"
|
||||
|
||||
"github.com/samosvalishe/btp/internal/netconn"
|
||||
"github.com/pion/logging"
|
||||
"github.com/pion/turn/v5"
|
||||
"github.com/samosvalishe/btp/internal/netconn"
|
||||
)
|
||||
|
||||
// Config конфигурирует один вызов Open.
|
||||
|
||||
@@ -26,7 +26,7 @@ func TestOpen_HostOverrideApplied(t *testing.T) {
|
||||
peer := &net.UDPAddr{IP: net.ParseIP("1.2.3.4"), Port: 1}
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
||||
defer cancel()
|
||||
_, err := Open(ctx, Config{HostOverride: "127.0.0.1", PortOverride: "1", TransportUDP: false,DialTimeout: 200 * time.Millisecond}, peer, "u", "p", "8.8.8.8:443")
|
||||
_, err := Open(ctx, Config{HostOverride: "127.0.0.1", PortOverride: "1", TransportUDP: false, DialTimeout: 200 * time.Millisecond}, peer, "u", "p", "8.8.8.8:443")
|
||||
if err == nil {
|
||||
t.Fatal("expected dial error against unreachable :1")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user