+/*
+ * Copyright (C) 2017 "IoT.bzh"
+ * Author Sebastien Douheret <sebastien@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package xdsserver
import (
"github.com/franciscocpg/reflectme"
common "github.com/iotbzh/xds-common/golib"
- "github.com/iotbzh/xds-server/lib/xsapiv1"
"github.com/iotbzh/xds-server/lib/xdsconfig"
+ "github.com/iotbzh/xds-server/lib/xsapiv1"
"github.com/syncthing/syncthing/lib/sync"
)
// Use XML format and not json to be able to save/load all fields including
// ones that are masked in json (IOW defined with `json:"-"`)
type xmlFolders struct {
- XMLName xml.Name `xml:"folders"`
- Version string `xml:"version,attr"`
+ XMLName xml.Name `xml:"folders"`
+ Version string `xml:"version,attr"`
Folders []xsapiv1.FolderConfig `xml:"folders"`
}
data := xmlFolders{}
err = xml.NewDecoder(fd).Decode(&data)
if err == nil {
+ // Decode old type encoding (number) for backward compatibility
+ for i, d := range data.Folders {
+ switch d.Type {
+ case "1":
+ data.Folders[i].Type = xsapiv1.TypePathMap
+ case "2":
+ data.Folders[i].Type = xsapiv1.TypeCloudSync
+ case "3":
+ data.Folders[i].Type = xsapiv1.TypeCifsSmb
+ }
+ }
+
*folders = data.Folders
}
return err