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