func (v *FreedomConfig) Build() (*serial.TypedMessage, error) { config := new(freedom.Config) config.DomainStrategy = freedom.Config_AS_IS domainStrategy := strings.ToLower(v.DomainStrategy) if domainStrategy == "useip" || domainStrategy == "use_ip" { config.DomainStrategy = freedom.Config_USE_IP } config.Timeout = v.Timeout return serial.ToTypedMessage(config), nil }
func (this *FreedomConfig) Build() (*loader.TypedSettings, error) { config := new(freedom.Config) config.DomainStrategy = freedom.Config_AS_IS domainStrategy := strings.ToLower(this.DomainStrategy) if domainStrategy == "useip" || domainStrategy == "use_ip" { config.DomainStrategy = freedom.Config_USE_IP } config.Timeout = this.Timeout return loader.NewTypedSettings(config), nil }
func (v *FreedomConfig) Build() (*serial.TypedMessage, error) { config := new(freedom.Config) config.DomainStrategy = freedom.Config_AS_IS domainStrategy := strings.ToLower(v.DomainStrategy) if domainStrategy == "useip" || domainStrategy == "use_ip" { config.DomainStrategy = freedom.Config_USE_IP } config.Timeout = 600 if v.Timeout != nil { config.Timeout = *v.Timeout } if len(v.Redirect) > 0 { host, portStr, err := net.SplitHostPort(v.Redirect) if err != nil { return nil, errors.Base(err).Message("Config: Invalid redirect address: ", v.Redirect, ": ", err) } port, err := v2net.PortFromString(portStr) if err != nil { return nil, errors.Base(err).Message("Config: Invalid redirect port: ", v.Redirect, ": ", err) } if len(host) == 0 { host = "127.0.0.1" } config.DestinationOverride = &freedom.DestinationOverride{ Server: &protocol.ServerEndpoint{ Address: v2net.NewIPOrDomain(v2net.ParseAddress(host)), Port: uint32(port), }, } } return serial.ToTypedMessage(config), nil }