1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-26 09:25:23 +00:00

config for on demand inbound detour

This commit is contained in:
v2ray 2015-12-28 23:17:38 +01:00
parent 96053d9e12
commit 71c70416f5
3 changed files with 55 additions and 6 deletions

View File

@ -23,10 +23,22 @@ type DnsConfig interface {
Settings() dns.CacheConfig
}
const (
AllocationStrategyAlways = "always"
AllocationStrategyRandom = "random"
AllocationStrategyExternal = "external"
)
type InboundDetourAllocationConfig interface {
Strategy() string
Concurrency() int
}
type InboundDetourConfig interface {
Protocol() string
PortRange() v2net.PortRange
Tag() string
Allocation() InboundDetourAllocationConfig
Settings() interface{}
}

View File

@ -6,13 +6,32 @@ import (
v2net "github.com/v2ray/v2ray-core/common/net"
v2netjson "github.com/v2ray/v2ray-core/common/net/json"
proxyconfig "github.com/v2ray/v2ray-core/proxy/common/config"
"github.com/v2ray/v2ray-core/shell/point"
)
type InboundDetourAllocationConfig struct {
StrategyValue string `json:"strategy"`
ConcurrencyValue int `json:"concurrency"`
}
func (this *InboundDetourAllocationConfig) Strategy() string {
return this.StrategyValue
}
func (this *InboundDetourAllocationConfig) Concurrency() int {
return this.ConcurrencyValue
}
type InboundDetourConfig struct {
ProtocolValue string `json:"protocol"`
PortRangeValue *v2netjson.PortRange `json:"port"`
SettingsValue json.RawMessage `json:"settings"`
TagValue string `json:"tag"`
ProtocolValue string `json:"protocol"`
PortRangeValue *v2netjson.PortRange `json:"port"`
SettingsValue json.RawMessage `json:"settings"`
TagValue string `json:"tag"`
AllocationValue *InboundDetourAllocationConfig `json:"allocate"`
}
func (this *InboundDetourConfig) Allocation() point.InboundDetourAllocationConfig {
return this.AllocationValue
}
func (this *InboundDetourConfig) Protocol() string {

View File

@ -52,10 +52,28 @@ func (this *PortRange) To() v2net.Port {
return this.ToValue
}
type InboundDetourAllocationConfig struct {
StrategyValue string
ConcurrencyValue int
}
func (this *InboundDetourAllocationConfig) Strategy() string {
return this.StrategyValue
}
func (this *InboundDetourAllocationConfig) Concurrency() int {
return this.ConcurrencyValue
}
type InboundDetourConfig struct {
*ConnectionConfig
PortRangeValue *PortRange
TagValue string
PortRangeValue *PortRange
TagValue string
AllocationStrategy *InboundDetourAllocationConfig
}
func (this *InboundDetourConfig) Allocation() point.InboundDetourAllocationConfig {
return this.AllocationStrategy
}
func (this *InboundDetourConfig) Tag() string {