conf: Verify that loaded configuration has some validity #2
@@ -85,6 +85,13 @@ func loadConfig(yamlFile string) Config {
|
|||||||
config.Listen = []string{":8080"}
|
config.Listen = []string{":8080"}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Checkpoints & Roots are not used in-code, not checking for being set/valid
|
||||||
|
|
||||||
|
// Ensure there are logs configured
|
||||||
|
if len(config.Logs) == 0 {
|
||||||
|
log.Fatalf("Parsed YAML did not include any 'logs'")
|
||||||
|
}
|
||||||
|
|
||||||
// Set defaults for log entries and check for empty/missing values
|
// Set defaults for log entries and check for empty/missing values
|
||||||
for i := range config.Logs {
|
for i := range config.Logs {
|
||||||
// Checks are in order of fields of the Log struct
|
// Checks are in order of fields of the Log struct
|
||||||
@@ -97,6 +104,8 @@ func loadConfig(yamlFile string) Config {
|
|||||||
log.Fatalf("Log %d (%s) is missing a value for Domain", i, config.Logs[i].ShortName)
|
log.Fatalf("Log %d (%s) is missing a value for Domain", i, config.Logs[i].ShortName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Inception is not used in-code
|
||||||
|
|
||||||
if config.Logs[i].Period == 0 {
|
if config.Logs[i].Period == 0 {
|
||||||
config.Logs[i].Period = 200
|
config.Logs[i].Period = 200
|
||||||
}
|
}
|
||||||
@@ -104,6 +113,47 @@ func loadConfig(yamlFile string) Config {
|
|||||||
if config.Logs[i].PoolSize == 0 {
|
if config.Logs[i].PoolSize == 0 {
|
||||||
config.Logs[i].PoolSize = 750
|
config.Logs[i].PoolSize = 750
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if config.Logs[i].SubmissionPrefix == "" {
|
||||||
|
log.Fatalf("Log %d (%s) is missing a value for SubmissionPrefix", i, config.Logs[i].ShortName)
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.Logs[i].MonitoringPrefix == "" {
|
||||||
|
log.Fatalf("Log %d (%s) is missing a value for MonitoringPrefix", i, config.Logs[i].ShortName)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CCadbRoots is not used in-code
|
||||||
|
// ExtraRoots is optional
|
||||||
|
|
||||||
|
if config.Logs[i].Secret == "" {
|
||||||
|
log.Fatalf("Log %d (%s) is missing a value for Secret", i, config.Logs[i].ShortName)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache is not used in-code
|
||||||
|
|
||||||
|
if config.Logs[i].LocalDirectory == "" {
|
||||||
|
log.Fatalf("Log %d (%s) is missing a value for LocalDirectory", i, config.Logs[i].ShortName)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Listen, NotAfterStart and NotAfterLimit are optional
|
||||||
|
|
||||||
|
// These fields are exported due to HTML templates
|
||||||
|
// but should not be provided/filled by the user
|
||||||
|
if config.Logs[i].LogID != "" {
|
||||||
|
log.Fatalf("Log %d (%s) has field LogID should not be configured (%s)", i, config.Logs[i].ShortName, config.Logs[i].LogID)
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.Logs[i].PublicKeyPEM != "" {
|
||||||
|
log.Fatalf("Log %d (%s) has field PublicKeyPEM should not be configured (%s)", i, config.Logs[i].ShortName, config.Logs[i].PublicKeyPEM)
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.Logs[i].PublicKeyDERB64 != "" {
|
||||||
|
log.Fatalf("Log %d (%s) has field PublicKeyDERB64 should not be configured (%s)", i, config.Logs[i].ShortName, config.Logs[i].PublicKeyDERB64)
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.Logs[i].PublicKeyBase64 != "" {
|
||||||
|
log.Fatalf("Log %d (%s) has field PublicKeyBase64 should not be configured (%s)", i, config.Logs[i].ShortName, config.Logs[i].PublicKeyBase64)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return config
|
return config
|
||||||
|
Reference in New Issue
Block a user