HTTP transport: Use dest as Host if not set (#4038)

This commit is contained in:
风扇滑翔翼 2024-11-21 13:42:19 +08:00 committed by GitHub
parent 6ba0dbafd7
commit 0a252ac15d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View File

@ -8,7 +8,7 @@ import (
func (c *Config) getHosts() []string { func (c *Config) getHosts() []string {
if len(c.Host) == 0 { if len(c.Host) == 0 {
return []string{"www.example.com"} return []string{""}
} }
return c.Host return c.Host
} }

View File

@ -215,9 +215,16 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me
} }
} }
Host := httpSettings.getRandomHost()
if Host == "" && net.ParseAddress(dest.NetAddr()).Family().IsDomain() {
Host = dest.Address.String()
} else if Host == "" {
Host = "www.example.com"
}
request := &http.Request{ request := &http.Request{
Method: httpMethod, Method: httpMethod,
Host: httpSettings.getRandomHost(), Host: Host,
Body: breader, Body: breader,
URL: &url.URL{ URL: &url.URL{
Scheme: "https", Scheme: "https",