From: Sebastien Douheret Date: Fri, 8 Dec 2017 17:08:52 +0000 (+0100) Subject: Support old folder type encoding (backward compatibility) X-Git-Tag: v1.0.0-rc2~6 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fxds%2Fxds-server.git;a=commitdiff_plain;h=780aa41657c49e6ed01569d96dbde370006cdf92 Support old folder type encoding (backward compatibility) --- diff --git a/.vscode/settings.json b/.vscode/settings.json index ac5a7b6..24aa012 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -29,6 +29,6 @@ "inotify", "Inot", "pname", "pkill", "sdkid", "CLOUDSYNC", "xdsagent", "gdbserver", "golib", "eows", "mfolders", "IFOLDER", "flds", "dflt", "stconfig", "reflectme", "franciscocpg", "crosssdk", "urfave", "EXEPATH", - "conv", "Sillyf" + "conv", "Sillyf", "xsapiv" ] } diff --git a/lib/xdsserver/folders.go b/lib/xdsserver/folders.go index 41158fb..7a45bbd 100644 --- a/lib/xdsserver/folders.go +++ b/lib/xdsserver/folders.go @@ -28,8 +28,8 @@ 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" ) @@ -425,8 +425,8 @@ func (f *Folders) IsFolderInSync(id string) (bool, error) { // 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"` } @@ -448,6 +448,18 @@ func foldersConfigRead(file string, folders *[]xsapiv1.FolderConfig) error { 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