@@ -100,16 +100,17 @@ type GeoXUrl struct {
100100
101101// Controller config
102102type Controller struct {
103- ExternalController string
104- ExternalControllerTLS string
105- ExternalControllerUnix string
106- ExternalControllerPipe string
107- ExternalUI string
108- ExternalUIURL string
109- ExternalUIName string
110- ExternalDohServer string
111- Secret string
112- Cors Cors
103+ ExternalController string
104+ ExternalControllerTLS string
105+ ExternalControllerUnix string
106+ ExternalControllerPipe string
107+ ExternalControllerRoutingMark int
108+ ExternalUI string
109+ ExternalUIURL string
110+ ExternalUIName string
111+ ExternalDohServer string
112+ Secret string
113+ Cors Cors
113114}
114115
115116type Cors struct {
@@ -391,51 +392,52 @@ type RawTLS struct {
391392}
392393
393394type RawConfig struct {
394- Port int `yaml:"port" json:"port"`
395- SocksPort int `yaml:"socks-port" json:"socks-port"`
396- RedirPort int `yaml:"redir-port" json:"redir-port"`
397- TProxyPort int `yaml:"tproxy-port" json:"tproxy-port"`
398- MixedPort int `yaml:"mixed-port" json:"mixed-port"`
399- ShadowSocksConfig string `yaml:"ss-config" json:"ss-config"`
400- VmessConfig string `yaml:"vmess-config" json:"vmess-config"`
401- InboundTfo bool `yaml:"inbound-tfo" json:"inbound-tfo"`
402- InboundMPTCP bool `yaml:"inbound-mptcp" json:"inbound-mptcp"`
403- Authentication []string `yaml:"authentication" json:"authentication"`
404- SkipAuthPrefixes []netip.Prefix `yaml:"skip-auth-prefixes" json:"skip-auth-prefixes"`
405- LanAllowedIPs []netip.Prefix `yaml:"lan-allowed-ips" json:"lan-allowed-ips"`
406- LanDisAllowedIPs []netip.Prefix `yaml:"lan-disallowed-ips" json:"lan-disallowed-ips"`
407- AllowLan bool `yaml:"allow-lan" json:"allow-lan"`
408- BindAddress string `yaml:"bind-address" json:"bind-address"`
409- Mode T.TunnelMode `yaml:"mode" json:"mode"`
410- UnifiedDelay bool `yaml:"unified-delay" json:"unified-delay"`
411- LogLevel log.LogLevel `yaml:"log-level" json:"log-level"`
412- IPv6 bool `yaml:"ipv6" json:"ipv6"`
413- ExternalController string `yaml:"external-controller" json:"external-controller"`
414- ExternalControllerPipe string `yaml:"external-controller-pipe" json:"external-controller-pipe"`
415- ExternalControllerUnix string `yaml:"external-controller-unix" json:"external-controller-unix"`
416- ExternalControllerTLS string `yaml:"external-controller-tls" json:"external-controller-tls"`
417- ExternalControllerCors RawCors `yaml:"external-controller-cors" json:"external-controller-cors"`
418- ExternalUI string `yaml:"external-ui" json:"external-ui"`
419- ExternalUIURL string `yaml:"external-ui-url" json:"external-ui-url"`
420- ExternalUIName string `yaml:"external-ui-name" json:"external-ui-name"`
421- ExternalDohServer string `yaml:"external-doh-server" json:"external-doh-server"`
422- Secret string `yaml:"secret" json:"secret"`
423- Interface string `yaml:"interface-name" json:"interface-name"`
424- RoutingMark int `yaml:"routing-mark" json:"routing-mark"`
425- Tunnels []LC.Tunnel `yaml:"tunnels" json:"tunnels"`
426- GeoAutoUpdate bool `yaml:"geo-auto-update" json:"geo-auto-update"`
427- GeoUpdateInterval int `yaml:"geo-update-interval" json:"geo-update-interval"`
428- GeodataMode bool `yaml:"geodata-mode" json:"geodata-mode"`
429- GeodataLoader string `yaml:"geodata-loader" json:"geodata-loader"`
430- GeositeMatcher string `yaml:"geosite-matcher" json:"geosite-matcher"`
431- TCPConcurrent bool `yaml:"tcp-concurrent" json:"tcp-concurrent"`
432- FindProcessMode process.FindProcessMode `yaml:"find-process-mode" json:"find-process-mode"`
433- GlobalClientFingerprint string `yaml:"global-client-fingerprint" json:"global-client-fingerprint"`
434- GlobalUA string `yaml:"global-ua" json:"global-ua"`
435- ETagSupport bool `yaml:"etag-support" json:"etag-support"`
436- KeepAliveIdle int `yaml:"keep-alive-idle" json:"keep-alive-idle"`
437- KeepAliveInterval int `yaml:"keep-alive-interval" json:"keep-alive-interval"`
438- DisableKeepAlive bool `yaml:"disable-keep-alive" json:"disable-keep-alive"`
395+ Port int `yaml:"port" json:"port"`
396+ SocksPort int `yaml:"socks-port" json:"socks-port"`
397+ RedirPort int `yaml:"redir-port" json:"redir-port"`
398+ TProxyPort int `yaml:"tproxy-port" json:"tproxy-port"`
399+ MixedPort int `yaml:"mixed-port" json:"mixed-port"`
400+ ShadowSocksConfig string `yaml:"ss-config" json:"ss-config"`
401+ VmessConfig string `yaml:"vmess-config" json:"vmess-config"`
402+ InboundTfo bool `yaml:"inbound-tfo" json:"inbound-tfo"`
403+ InboundMPTCP bool `yaml:"inbound-mptcp" json:"inbound-mptcp"`
404+ Authentication []string `yaml:"authentication" json:"authentication"`
405+ SkipAuthPrefixes []netip.Prefix `yaml:"skip-auth-prefixes" json:"skip-auth-prefixes"`
406+ LanAllowedIPs []netip.Prefix `yaml:"lan-allowed-ips" json:"lan-allowed-ips"`
407+ LanDisAllowedIPs []netip.Prefix `yaml:"lan-disallowed-ips" json:"lan-disallowed-ips"`
408+ AllowLan bool `yaml:"allow-lan" json:"allow-lan"`
409+ BindAddress string `yaml:"bind-address" json:"bind-address"`
410+ Mode T.TunnelMode `yaml:"mode" json:"mode"`
411+ UnifiedDelay bool `yaml:"unified-delay" json:"unified-delay"`
412+ LogLevel log.LogLevel `yaml:"log-level" json:"log-level"`
413+ IPv6 bool `yaml:"ipv6" json:"ipv6"`
414+ ExternalController string `yaml:"external-controller" json:"external-controller"`
415+ ExternalControllerRoutingMark int `yaml:"external-controller-routing-mark" json:"external-controller-routing-mark"`
416+ ExternalControllerPipe string `yaml:"external-controller-pipe" json:"external-controller-pipe"`
417+ ExternalControllerUnix string `yaml:"external-controller-unix" json:"external-controller-unix"`
418+ ExternalControllerTLS string `yaml:"external-controller-tls" json:"external-controller-tls"`
419+ ExternalControllerCors RawCors `yaml:"external-controller-cors" json:"external-controller-cors"`
420+ ExternalUI string `yaml:"external-ui" json:"external-ui"`
421+ ExternalUIURL string `yaml:"external-ui-url" json:"external-ui-url"`
422+ ExternalUIName string `yaml:"external-ui-name" json:"external-ui-name"`
423+ ExternalDohServer string `yaml:"external-doh-server" json:"external-doh-server"`
424+ Secret string `yaml:"secret" json:"secret"`
425+ Interface string `yaml:"interface-name" json:"interface-name"`
426+ RoutingMark int `yaml:"routing-mark" json:"routing-mark"`
427+ Tunnels []LC.Tunnel `yaml:"tunnels" json:"tunnels"`
428+ GeoAutoUpdate bool `yaml:"geo-auto-update" json:"geo-auto-update"`
429+ GeoUpdateInterval int `yaml:"geo-update-interval" json:"geo-update-interval"`
430+ GeodataMode bool `yaml:"geodata-mode" json:"geodata-mode"`
431+ GeodataLoader string `yaml:"geodata-loader" json:"geodata-loader"`
432+ GeositeMatcher string `yaml:"geosite-matcher" json:"geosite-matcher"`
433+ TCPConcurrent bool `yaml:"tcp-concurrent" json:"tcp-concurrent"`
434+ FindProcessMode process.FindProcessMode `yaml:"find-process-mode" json:"find-process-mode"`
435+ GlobalClientFingerprint string `yaml:"global-client-fingerprint" json:"global-client-fingerprint"`
436+ GlobalUA string `yaml:"global-ua" json:"global-ua"`
437+ ETagSupport bool `yaml:"etag-support" json:"etag-support"`
438+ KeepAliveIdle int `yaml:"keep-alive-idle" json:"keep-alive-idle"`
439+ KeepAliveInterval int `yaml:"keep-alive-interval" json:"keep-alive-interval"`
440+ DisableKeepAlive bool `yaml:"disable-keep-alive" json:"disable-keep-alive"`
439441
440442 ProxyProvider map [string ]map [string ]any `yaml:"proxy-providers" json:"proxy-providers"`
441443 RuleProvider map [string ]map [string ]any `yaml:"rule-providers" json:"rule-providers"`
@@ -801,15 +803,16 @@ func parseController(cfg *RawConfig) (*Controller, error) {
801803 return nil , fmt .Errorf ("external UI name is not local: %s" , uiName )
802804 }
803805 return & Controller {
804- ExternalController : cfg .ExternalController ,
805- ExternalUI : cfg .ExternalUI ,
806- ExternalUIURL : cfg .ExternalUIURL ,
807- ExternalUIName : cfg .ExternalUIName ,
808- Secret : cfg .Secret ,
809- ExternalControllerPipe : cfg .ExternalControllerPipe ,
810- ExternalControllerUnix : cfg .ExternalControllerUnix ,
811- ExternalControllerTLS : cfg .ExternalControllerTLS ,
812- ExternalDohServer : cfg .ExternalDohServer ,
806+ ExternalController : cfg .ExternalController ,
807+ ExternalUI : cfg .ExternalUI ,
808+ ExternalUIURL : cfg .ExternalUIURL ,
809+ ExternalUIName : cfg .ExternalUIName ,
810+ Secret : cfg .Secret ,
811+ ExternalControllerRoutingMark : cfg .ExternalControllerRoutingMark ,
812+ ExternalControllerPipe : cfg .ExternalControllerPipe ,
813+ ExternalControllerUnix : cfg .ExternalControllerUnix ,
814+ ExternalControllerTLS : cfg .ExternalControllerTLS ,
815+ ExternalDohServer : cfg .ExternalDohServer ,
813816 Cors : Cors {
814817 AllowOrigins : cfg .ExternalControllerCors .AllowOrigins ,
815818 AllowPrivateNetwork : cfg .ExternalControllerCors .AllowPrivateNetwork ,
0 commit comments