XHTTP client: Move dest2 into MemoryStreamConfig as well

This commit is contained in:
RPRX 2024-11-04 05:00:18 +00:00 committed by GitHub
parent 2c72864935
commit 9fbb6fbb3b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 7 deletions

View file

@ -1,7 +1,10 @@
package internet
import "github.com/xtls/xray-core/common/net"
// MemoryStreamConfig is a parsed form of StreamConfig. This is used to reduce the number of Protobuf parsings.
type MemoryStreamConfig struct {
Destination *net.Destination
ProtocolName string
ProtocolSettings interface{}
SecurityType string
@ -23,6 +26,13 @@ func ToMemoryStreamConfig(s *StreamConfig) (*MemoryStreamConfig, error) {
}
if s != nil {
if s.Address != nil {
mss.Destination = &net.Destination{
Address: s.Address.AsAddress(),
Port: net.Port(s.Port),
Network: net.Network_TCP,
}
}
mss.SocketSettings = s.SocketSettings
}

View file

@ -264,12 +264,7 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me
}
globalDialerAccess.Unlock()
memory2 := streamSettings.DownloadSettings
dest2 := net.Destination{
Address: transportConfiguration.DownloadSettings.Address.AsAddress(), // just panic
Port: net.Port(transportConfiguration.DownloadSettings.Port),
Network: net.Network_TCP,
}
httpClient2, muxRes2 = getHTTPClient(ctx, dest2, memory2)
httpClient2, muxRes2 = getHTTPClient(ctx, *memory2.Destination, memory2) // just panic
if tls.ConfigFromStreamSettings(memory2) != nil || reality.ConfigFromStreamSettings(memory2) != nil {
requestURL2.Scheme = "https"
} else {
@ -278,7 +273,7 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me
config2 := memory2.ProtocolSettings.(*Config)
requestURL2.Host = config2.Host
if requestURL2.Host == "" {
requestURL2.Host = dest2.NetAddr()
requestURL2.Host = memory2.Destination.NetAddr()
}
requestURL2.Path = requestURL.Path // the same
requestURL2.RawQuery = config2.GetNormalizedQuery()