mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-14 04:33:18 +00:00
XHTTP client: Move dest2
into MemoryStreamConfig
as well
This commit is contained in:
parent
2c72864935
commit
9fbb6fbb3b
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue