Просмотр исходного кода

AlwaysLocalNets should not default to null

Jakob Borg 10 лет назад
Родитель
Сommit
d171173e90
2 измененных файлов с 33 добавлено и 28 удалено
  1. 31 28
      lib/config/config.go
  2. 2 0
      lib/config/config_test.go

+ 31 - 28
lib/config/config.go

@@ -56,6 +56,34 @@ var (
 	}
 )
 
+func New(myID protocol.DeviceID) Configuration {
+	var cfg Configuration
+	cfg.Version = CurrentVersion
+	cfg.OriginalVersion = CurrentVersion
+
+	setDefaults(&cfg)
+	setDefaults(&cfg.Options)
+	setDefaults(&cfg.GUI)
+
+	cfg.prepare(myID)
+
+	return cfg
+}
+
+func ReadXML(r io.Reader, myID protocol.DeviceID) (Configuration, error) {
+	var cfg Configuration
+
+	setDefaults(&cfg)
+	setDefaults(&cfg.Options)
+	setDefaults(&cfg.GUI)
+
+	err := xml.NewDecoder(r).Decode(&cfg)
+	cfg.OriginalVersion = cfg.Version
+
+	cfg.prepare(myID)
+	return cfg, err
+}
+
 type Configuration struct {
 	Version        int                   `xml:"version,attr" json:"version"`
 	Folders        []FolderConfiguration `xml:"folder" json:"folders"`
@@ -92,34 +120,6 @@ func (cfg Configuration) Copy() Configuration {
 	return newCfg
 }
 
-func New(myID protocol.DeviceID) Configuration {
-	var cfg Configuration
-	cfg.Version = CurrentVersion
-	cfg.OriginalVersion = CurrentVersion
-
-	setDefaults(&cfg)
-	setDefaults(&cfg.Options)
-	setDefaults(&cfg.GUI)
-
-	cfg.prepare(myID)
-
-	return cfg
-}
-
-func ReadXML(r io.Reader, myID protocol.DeviceID) (Configuration, error) {
-	var cfg Configuration
-
-	setDefaults(&cfg)
-	setDefaults(&cfg.Options)
-	setDefaults(&cfg.GUI)
-
-	err := xml.NewDecoder(r).Decode(&cfg)
-	cfg.OriginalVersion = cfg.Version
-
-	cfg.prepare(myID)
-	return cfg, err
-}
-
 func (cfg *Configuration) WriteXML(w io.Writer) error {
 	e := xml.NewEncoder(w)
 	e.Indent("", "    ")
@@ -141,6 +141,9 @@ func (cfg *Configuration) prepare(myID protocol.DeviceID) {
 	if cfg.IgnoredDevices == nil {
 		cfg.IgnoredDevices = []protocol.DeviceID{}
 	}
+	if cfg.Options.AlwaysLocalNets == nil {
+		cfg.Options.AlwaysLocalNets = []string{}
+	}
 
 	// Check for missing, bad or duplicate folder ID:s
 	var seenFolders = map[string]*FolderConfiguration{}

+ 2 - 0
lib/config/config_test.go

@@ -62,6 +62,7 @@ func TestDefaultValues(t *testing.T) {
 		URInitialDelayS:         1800,
 		URPostInsecurely:        false,
 		ReleasesURL:             "https://api.github.com/repos/syncthing/syncthing/releases?per_page=30",
+		AlwaysLocalNets:         []string{},
 	}
 
 	cfg := New(device1)
@@ -185,6 +186,7 @@ func TestOverriddenValues(t *testing.T) {
 		URInitialDelayS:         800,
 		URPostInsecurely:        true,
 		ReleasesURL:             "https://localhost/releases",
+		AlwaysLocalNets:         []string{},
 	}
 
 	cfg, err := Load("testdata/overridenvalues.xml", device1)