This commit is contained in:
gospider
2025-01-08 09:38:25 +08:00
parent 955b0c967c
commit b2654b8c61
4 changed files with 30 additions and 160 deletions

View File

@@ -117,7 +117,11 @@ func (obj *roundTripper) ghttp3Dial(ctx context.Context, option *RequestOption,
return nil, err
}
}
netConn, err := quic.DialEarly(ctx, udpConn, &net.UDPAddr{IP: remoteAddress.IP, Port: remoteAddress.Port}, tlsConfig, nil)
var quicConfig *quic.Config
if option.UquicConfig != nil {
quicConfig = option.QuicConfig.Clone()
}
netConn, err := quic.DialEarly(ctx, udpConn, &net.UDPAddr{IP: remoteAddress.IP, Port: remoteAddress.Port}, tlsConfig, quicConfig)
conn = obj.newConnecotr()
conn.Conn = http3.NewClient(netConn, func() {
conn.forceCnl(errors.New("http3 client close"))
@@ -143,12 +147,16 @@ func (obj *roundTripper) uhttp3Dial(ctx context.Context, option *RequestOption,
return nil, err
}
}
var quicConfig *uquic.Config
if option.UquicConfig != nil {
quicConfig = option.UquicConfig.Clone()
}
netConn, err := (&uquic.UTransport{
Transport: &uquic.Transport{
Conn: udpConn,
},
QUICSpec: &spec,
}).DialEarly(ctx, &net.UDPAddr{IP: remoteAddress.IP, Port: remoteAddress.Port}, tlsConfig, nil)
}).DialEarly(ctx, &net.UDPAddr{IP: remoteAddress.IP, Port: remoteAddress.Port}, tlsConfig, quicConfig)
conn = obj.newConnecotr()
conn.Conn = http3.NewUClient(netConn, func() {
conn.forceCnl(errors.New("http3 client close"))