diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 943d11dc8..49e3bbc8f 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -638,9 +638,21 @@ func syncthingMain(options serveOptions) { DBRecheckInterval: options.DebugDBRecheckInterval, DBIndirectGCInterval: options.DebugDBIndirectGCInterval, } - if options.Audit { - appOpts.AuditWriter = auditWriter(options.AuditFile) + + if options.Audit || cfgWrapper.Options().AuditEnabled { + l.Infoln("Auditing is enabled.") + + auditFile := cfgWrapper.Options().AuditFile + + // Ignore config option if command-line option is set + if options.AuditFile != "" { + l.Debugln("Using the audit file from the command-line parameter.") + auditFile = options.AuditFile + } + + appOpts.AuditWriter = auditWriter(auditFile) } + if dur, err := time.ParseDuration(os.Getenv("STRECHECKDBEVERY")); err == nil { appOpts.DBRecheckInterval = dur } diff --git a/lib/config/config_test.go b/lib/config/config_test.go index 1c2d8071b..27cfdd879 100644 --- a/lib/config/config_test.go +++ b/lib/config/config_test.go @@ -92,6 +92,8 @@ func TestDefaultValues(t *testing.T) { RawStunServers: []string{"default"}, AnnounceLANAddresses: true, FeatureFlags: []string{}, + AuditEnabled: false, + AuditFile: "", ConnectionPriorityTCPLAN: 10, ConnectionPriorityQUICLAN: 20, ConnectionPriorityTCPWAN: 30, @@ -295,6 +297,8 @@ func TestOverriddenValues(t *testing.T) { StunKeepaliveMinS: 900, RawStunServers: []string{"foo"}, FeatureFlags: []string{"feature"}, + AuditEnabled: true, + AuditFile: "nggyu", ConnectionPriorityTCPLAN: 40, ConnectionPriorityQUICLAN: 45, ConnectionPriorityTCPWAN: 50, diff --git a/lib/config/optionsconfiguration.go b/lib/config/optionsconfiguration.go index a0a147705..353a9305b 100644 --- a/lib/config/optionsconfiguration.go +++ b/lib/config/optionsconfiguration.go @@ -68,6 +68,8 @@ type OptionsConfiguration struct { AnnounceLANAddresses bool `json:"announceLANAddresses" xml:"announceLANAddresses" default:"true"` SendFullIndexOnUpgrade bool `json:"sendFullIndexOnUpgrade" xml:"sendFullIndexOnUpgrade"` FeatureFlags []string `json:"featureFlags" xml:"featureFlag"` + AuditEnabled bool `json:"auditEnabled" xml:"auditEnabled" default:"false"` + AuditFile string `json:"auditFile" xml:"auditFile"` // The number of connections at which we stop trying to connect to more // devices, zero meaning no limit. Does not affect incoming connections. ConnectionLimitEnough int `json:"connectionLimitEnough" xml:"connectionLimitEnough"` diff --git a/lib/config/testdata/overridenvalues.xml b/lib/config/testdata/overridenvalues.xml index 9503607e2..eb372aada 100644 --- a/lib/config/testdata/overridenvalues.xml +++ b/lib/config/testdata/overridenvalues.xml @@ -45,6 +45,8 @@ asdfasdf false feature + true + nggyu 40 45 50