// ApplyDefaults implements the method from interface yamlconf.Config // // ApplyDefaults populates default values on a Config to make sure that we have // a minimum viable config for running. As new settings are added to // flashlight, this function should be updated to provide sensible defaults for // those settings. func (cfg *Config) ApplyDefaults() { if cfg.Role == "" { cfg.Role = "client" } if cfg.Addr == "" { cfg.Addr = "localhost:8787" } if cfg.UIAddr == "" { cfg.UIAddr = "localhost:16823" } if cfg.CloudConfig == "" { cfg.CloudConfig = "https://config.getiantem.org/cloud.yaml.gz" } if cfg.InstanceId == "" { cfg.InstanceId = hex.EncodeToString(uuid.NodeID()) } // Make sure we always have a stats config if cfg.Stats == nil { cfg.Stats = &statreporter.Config{} } if cfg.Stats.StatshubAddr == "" { cfg.Stats.StatshubAddr = *statshubAddr } if cfg.Client != nil && cfg.Role == "client" { cfg.applyClientDefaults() } if cfg.ProxiedSites == nil { log.Debugf("Adding empty proxiedsites") cfg.ProxiedSites = &proxiedsites.Config{ Delta: &proxiedsites.Delta{ Additions: []string{}, Deletions: []string{}, }, Cloud: []string{}, } } if cfg.ProxiedSites.Cloud == nil || len(cfg.ProxiedSites.Cloud) == 0 { log.Debugf("Loading default cloud proxiedsites") cfg.ProxiedSites.Cloud = defaultProxiedSites } if cfg.TrustedCAs == nil || len(cfg.TrustedCAs) == 0 { cfg.TrustedCAs = defaultTrustedCAs } }
// ApplyDefaults implements the method from interface yamlconf.Config // // ApplyDefaults populates default values on a Config to make sure that we have // a minimum viable config for running. As new settings are added to // flashlight, this function should be updated to provide sensible defaults for // those settings. func (cfg *Config) ApplyDefaults() { if cfg.UpdateServerURL == "" { cfg.UpdateServerURL = "https://update.getlantern.org" } if cfg.CloudConfig == "" { cfg.CloudConfig = chainedCloudConfigUrl } if cfg.Client != nil { cfg.applyClientDefaults() } if cfg.ProxiedSites == nil { log.Debugf("Adding empty proxiedsites") cfg.ProxiedSites = &proxiedsites.Config{ Delta: &proxiedsites.Delta{ Additions: []string{}, Deletions: []string{}, }, Cloud: []string{}, } } if cfg.ProxiedSites.Cloud == nil || len(cfg.ProxiedSites.Cloud) == 0 { log.Debugf("Loading default cloud proxiedsites") cfg.ProxiedSites.Cloud = defaultProxiedSites } if cfg.TrustedCAs == nil || len(cfg.TrustedCAs) == 0 { cfg.TrustedCAs = defaultTrustedCAs } if cfg.Client.DeviceID == "" { // There is no true privacy or security in instance ID. For that, we rely on // transport security. Hashing MAC would buy us nothing, since the space of // MACs is trivially mapped, especially since the salt would be known cfg.Client.DeviceID = base64.StdEncoding.EncodeToString(uuid.NodeID()) } }
func getNodeUint32() uint32 { n := uuid.NodeID() return binary.BigEndian.Uint32(n) }