mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-08-22 09:36:49 +08:00
Root config: Add version
config (min
and max
) (#4970)
https://github.com/XTLS/Xray-core/pull/4968#issuecomment-3146592323
This commit is contained in:
22
infra/conf/version.go
Normal file
22
infra/conf/version.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package conf
|
||||
|
||||
import (
|
||||
"github.com/xtls/xray-core/app/version"
|
||||
"github.com/xtls/xray-core/core"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type VersionConfig struct {
|
||||
MinVersion string `json:"min"`
|
||||
MaxVersion string `json:"max"`
|
||||
}
|
||||
|
||||
func (c *VersionConfig) Build() (*version.Config, error) {
|
||||
coreVersion := strconv.Itoa(int(core.Version_x)) + "." + strconv.Itoa(int(core.Version_y)) + "." + strconv.Itoa(int(core.Version_z))
|
||||
|
||||
return &version.Config{
|
||||
CoreVersion: coreVersion,
|
||||
MinVersion: c.MinVersion,
|
||||
MaxVersion: c.MaxVersion,
|
||||
}, nil
|
||||
}
|
@@ -383,6 +383,7 @@ type Config struct {
|
||||
FakeDNS *FakeDNSConfig `json:"fakeDns"`
|
||||
Observatory *ObservatoryConfig `json:"observatory"`
|
||||
BurstObservatory *BurstObservatoryConfig `json:"burstObservatory"`
|
||||
Version *VersionConfig `json:"version"`
|
||||
}
|
||||
|
||||
func (c *Config) findInboundTag(tag string) int {
|
||||
@@ -451,6 +452,10 @@ func (c *Config) Override(o *Config, fn string) {
|
||||
c.BurstObservatory = o.BurstObservatory
|
||||
}
|
||||
|
||||
if o.Version != nil {
|
||||
c.Version = o.Version
|
||||
}
|
||||
|
||||
// update the Inbound in slice if the only one in override config has same tag
|
||||
if len(o.InboundConfigs) > 0 {
|
||||
for i := range o.InboundConfigs {
|
||||
@@ -591,6 +596,14 @@ func (c *Config) Build() (*core.Config, error) {
|
||||
config.App = append(config.App, serial.ToTypedMessage(r))
|
||||
}
|
||||
|
||||
if c.Version != nil {
|
||||
r, err := c.Version.Build()
|
||||
if err != nil {
|
||||
return nil, errors.New("failed to build version configuration").Base(err)
|
||||
}
|
||||
config.App = append(config.App, serial.ToTypedMessage(r))
|
||||
}
|
||||
|
||||
var inbounds []InboundDetourConfig
|
||||
|
||||
if len(c.InboundConfigs) > 0 {
|
||||
|
Reference in New Issue
Block a user