MCPcopy
hub / github.com/txthinking/brook / QUICDialUDP

Function QUICDialUDP

quic.go:26–54  ·  view source on GitHub ↗
(src, dst, addr string, tc *tls.Config, idleTime int)

Source from the content-addressed store, hash-verified

24)
25
26func QUICDialUDP(src, dst, addr string, tc *tls.Config, idleTime int) (net.Conn, error) {
27 var rc *net.UDPConn
28 var err error
29 if src == "" || dst == "" {
30 rc, err = ListenUDP("udp", nil)
31 }
32 if src != "" && dst != "" {
33 rc, err = NATListenUDP("udp", src, dst)
34 }
35 if err != nil {
36 return nil, err
37 }
38 raddr, err := Resolve("udp", addr)
39 if err != nil {
40 rc.Close()
41 return nil, err
42 }
43 rc1, err := quic.Dial(context.Background(), rc, raddr, tc, &quic.Config{MaxIdleTimeout: time.Duration(idleTime) * time.Second, EnableDatagrams: true})
44 if err != nil {
45 rc.Close()
46 return nil, err
47 }
48 return &QUICConn{
49 UDPConn: rc,
50 Conn: rc1,
51 LAddr: rc1.LocalAddr(),
52 RAddr: rc1.RemoteAddr(),
53 }, nil
54}
55
56func QUICDialTCP(src, dst, addr string, tc *tls.Config, idleTime int) (net.Conn, error) {
57 var rc *net.UDPConn

Callers 2

UDPHandleMethod · 0.85
CreateExchangerMethod · 0.85

Calls 4

DialMethod · 0.80
CloseMethod · 0.45
LocalAddrMethod · 0.45
RemoteAddrMethod · 0.45

Tested by

no test coverage detected