Fix host in headers field does not work XTLS#3191

This commit is contained in:
风扇滑翔翼 2024-03-27 21:06:56 +08:00 committed by yuhan6665
parent e2439c0483
commit 8a439bf3f2

View file

@ -200,6 +200,14 @@ func (c *HttpUpgradeConfig) Build() (proto.Message, error) {
path = u.String() path = u.String()
} }
} }
// If http host is not set in the Host field, but in headers field, we add it to Host Field here.
// If we don't do that, http host will be overwritten as address.
// Host priority: Host field > headers field > address.
if c.Host == "" && c.Headers["host"] != "" {
c.Host = c.Headers["host"]
} else if c.Host == "" && c.Headers["Host"] != "" {
c.Host = c.Headers["Host"]
}
config := &httpupgrade.Config{ config := &httpupgrade.Config{
Path: path, Path: path,
Host: c.Host, Host: c.Host,