github.com/ipfans/trojan-go@v0.11.0/tunnel/router/config.go (about)

     1  package router
     2  
     3  import (
     4  	"github.com/ipfans/trojan-go/common"
     5  	"github.com/ipfans/trojan-go/config"
     6  )
     7  
     8  type Config struct {
     9  	Router RouterConfig `json:"router" yaml:"router"`
    10  }
    11  
    12  type RouterConfig struct {
    13  	Enabled         bool     `json:"enabled" yaml:"enabled"`
    14  	Bypass          []string `json:"bypass" yaml:"bypass"`
    15  	Proxy           []string `json:"proxy" yaml:"proxy"`
    16  	Block           []string `json:"block" yaml:"block"`
    17  	DomainStrategy  string   `json:"domain_strategy" yaml:"domain-strategy"`
    18  	DefaultPolicy   string   `json:"default_policy" yaml:"default-policy"`
    19  	GeoIPFilename   string   `json:"geoip" yaml:"geoip"`
    20  	GeoSiteFilename string   `json:"geosite" yaml:"geosite"`
    21  }
    22  
    23  func init() {
    24  	config.RegisterConfigCreator(Name, func() interface{} {
    25  		cfg := &Config{
    26  			Router: RouterConfig{
    27  				DefaultPolicy:   "proxy",
    28  				DomainStrategy:  "as_is",
    29  				GeoIPFilename:   common.GetAssetLocation("geoip.dat"),
    30  				GeoSiteFilename: common.GetAssetLocation("geosite.dat"),
    31  			},
    32  		}
    33  		return cfg
    34  	})
    35  }