mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-08-22 09:36:49 +08:00
Some refines related to direct/freedom and targetStrategy
; More intelligent "useIP"/"ForceIP", enhance "origin" functionality (#5030)
https://github.com/XTLS/Xray-core/pull/5009#issuecomment-3194264277
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/xtls/xray-core/common/protocol"
|
||||
"github.com/xtls/xray-core/proxy/freedom"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"github.com/xtls/xray-core/transport/internet"
|
||||
)
|
||||
|
||||
type FreedomConfig struct {
|
||||
@@ -47,27 +48,27 @@ func (c *FreedomConfig) Build() (proto.Message, error) {
|
||||
}
|
||||
switch strings.ToLower(targetStrategy) {
|
||||
case "asis", "":
|
||||
config.DomainStrategy = freedom.Config_AS_IS
|
||||
config.DomainStrategy = internet.DomainStrategy_AS_IS
|
||||
case "useip":
|
||||
config.DomainStrategy = freedom.Config_USE_IP
|
||||
config.DomainStrategy = internet.DomainStrategy_USE_IP
|
||||
case "useipv4":
|
||||
config.DomainStrategy = freedom.Config_USE_IP4
|
||||
config.DomainStrategy = internet.DomainStrategy_USE_IP4
|
||||
case "useipv6":
|
||||
config.DomainStrategy = freedom.Config_USE_IP6
|
||||
config.DomainStrategy = internet.DomainStrategy_USE_IP6
|
||||
case "useipv4v6":
|
||||
config.DomainStrategy = freedom.Config_USE_IP46
|
||||
config.DomainStrategy = internet.DomainStrategy_USE_IP46
|
||||
case "useipv6v4":
|
||||
config.DomainStrategy = freedom.Config_USE_IP64
|
||||
config.DomainStrategy = internet.DomainStrategy_USE_IP64
|
||||
case "forceip":
|
||||
config.DomainStrategy = freedom.Config_FORCE_IP
|
||||
config.DomainStrategy = internet.DomainStrategy_FORCE_IP
|
||||
case "forceipv4":
|
||||
config.DomainStrategy = freedom.Config_FORCE_IP4
|
||||
config.DomainStrategy = internet.DomainStrategy_FORCE_IP4
|
||||
case "forceipv6":
|
||||
config.DomainStrategy = freedom.Config_FORCE_IP6
|
||||
config.DomainStrategy = internet.DomainStrategy_FORCE_IP6
|
||||
case "forceipv4v6":
|
||||
config.DomainStrategy = freedom.Config_FORCE_IP46
|
||||
config.DomainStrategy = internet.DomainStrategy_FORCE_IP46
|
||||
case "forceipv6v4":
|
||||
config.DomainStrategy = freedom.Config_FORCE_IP64
|
||||
config.DomainStrategy = internet.DomainStrategy_FORCE_IP64
|
||||
default:
|
||||
return nil, errors.New("unsupported domain strategy: ", targetStrategy)
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/xtls/xray-core/common/protocol"
|
||||
. "github.com/xtls/xray-core/infra/conf"
|
||||
"github.com/xtls/xray-core/proxy/freedom"
|
||||
"github.com/xtls/xray-core/transport/internet"
|
||||
)
|
||||
|
||||
func TestFreedomConfig(t *testing.T) {
|
||||
@@ -23,7 +24,7 @@ func TestFreedomConfig(t *testing.T) {
|
||||
}`,
|
||||
Parser: loadJSON(creator),
|
||||
Output: &freedom.Config{
|
||||
DomainStrategy: freedom.Config_AS_IS,
|
||||
DomainStrategy: internet.DomainStrategy_AS_IS,
|
||||
DestinationOverride: &freedom.DestinationOverride{
|
||||
Server: &protocol.ServerEndpoint{
|
||||
Address: &net.IPOrDomain{
|
||||
|
Reference in New Issue
Block a user