From f1d6bf7b1bbf0b74ab4df9824ca080ef7c5ca4ae Mon Sep 17 00:00:00 2001 From: "sashakoshka@tebibyte.media" Date: Tue, 21 Jan 2025 20:28:08 -0500 Subject: [PATCH] Dial works quic-go does not have support for choosing a network somehow. very basic feature, you'd think, considering the stdlib's net has full support for that. it would be passing a string down. --- dial.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/dial.go b/dial.go index 6a7f2d0..18c9dd4 100644 --- a/dial.go +++ b/dial.go @@ -27,13 +27,10 @@ func (diale Dialer) Dial(ctx context.Context, network, address string) (Conn, er } func (diale Dialer) dialQUIC(ctx context.Context, network, address string) (Conn, error) { - udpNetwork, err := quicNetworkToUDPNetwork(network) - if err != nil { return nil, err } - addr, err := net.ResolveUDPAddr(udpNetwork, address) - if err != nil { return nil, err } - udpConn, err := net.DialUDP(udpNetwork, nil, addr) - if err != nil { return nil, err } - conn, err := quic.Dial(ctx, udpConn, addr, tlsConfig(diale.TLSConfig), quicConfig()) + // sorry i fucking lied to you about the network parameter. for all + // quic-go's bullshit bloat, it doesnt even support that. not even when + // instantiating a transport. go figure :/ + conn, err := quic.DialAddr(ctx, address, tlsConfig(diale.TLSConfig), quicConfig()) if err != nil { return nil, err } return AdaptB(quicMultiConn { underlying: conn }), nil }