Fix https DNS transports

This commit is contained in:
世界
2025-01-25 19:03:53 +08:00
parent 1c56213cbe
commit 314b25bccf
3 changed files with 26 additions and 5 deletions

View File

@@ -60,9 +60,20 @@ func NewHTTP3(ctx context.Context, logger log.ContextLogger, tag string, options
if err != nil {
return nil, err
}
headers := options.Headers.Build()
host := headers.Get("Host")
if host != "" {
headers.Del("Host")
} else {
if tlsConfig.ServerName() != "" {
host = tlsConfig.ServerName()
} else {
host = options.Server
}
}
destinationURL := url.URL{
Scheme: "HTTP3",
Host: options.Host,
Host: host,
}
if destinationURL.Host == "" {
destinationURL.Host = options.Server
@@ -87,7 +98,7 @@ func NewHTTP3(ctx context.Context, logger log.ContextLogger, tag string, options
logger: logger,
dialer: transportDialer,
destination: &destinationURL,
headers: options.Headers.Build(),
headers: headers,
transport: &http3.Transport{
Dial: func(ctx context.Context, addr string, tlsCfg *tls.STDConfig, cfg *quic.Config) (quic.EarlyConnection, error) {
destinationAddr := M.ParseSocksaddr(addr)