From 9f4cd7716eed12d26331247d7279578254a4702d Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Sun, 27 Sep 2015 12:11:34 +0100 Subject: [PATCH] Add more information about the folders to ClusterConfig --- lib/model/model.go | 12 ++++++++++++ lib/protocol/protocol.go | 7 +++++++ lib/relay/protocol/packets.go | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/model/model.go b/lib/model/model.go index 43240aff5..9161d8461 100644 --- a/lib/model/model.go +++ b/lib/model/model.go @@ -1479,9 +1479,21 @@ func (m *Model) clusterConfig(device protocol.DeviceID) protocol.ClusterConfigMe m.fmut.RLock() for _, folder := range m.deviceFolders[device] { + folderCfg := m.cfg.Folders()[folder] cr := protocol.Folder{ ID: folder, } + var flags uint32 + if folderCfg.ReadOnly { + flags |= protocol.FlagFolderReadOnly + } + if folderCfg.IgnorePerms { + flags |= protocol.FlagFolderIgnorePerms + } + if folderCfg.IgnoreDelete { + flags |= protocol.FlagFolderIgnoreDelete + } + cr.Flags = flags for _, device := range m.folderDevices[folder] { // DeviceID is a value type, but with an underlying array. Copy it // so we don't grab aliases to the same array later on in device[:] diff --git a/lib/protocol/protocol.go b/lib/protocol/protocol.go index 0a1754a72..2420bf386 100644 --- a/lib/protocol/protocol.go +++ b/lib/protocol/protocol.go @@ -61,6 +61,13 @@ const ( FlagRequestTemporary uint32 = 1 << iota ) +// ClusterConfigMessage.Folders flags +const ( + FlagFolderReadOnly uint32 = 1 << 0 + FlagFolderIgnorePerms = 1 << 1 + FlagFolderIgnoreDelete = 1 << 2 +) + // ClusterConfigMessage.Folders.Devices flags const ( FlagShareTrusted uint32 = 1 << 0 diff --git a/lib/relay/protocol/packets.go b/lib/relay/protocol/packets.go index f11954caa..cd6ff620e 100644 --- a/lib/relay/protocol/packets.go +++ b/lib/relay/protocol/packets.go @@ -1,6 +1,6 @@ // Copyright (C) 2015 Audrius Butkevicius and Contributors (see the CONTRIBUTORS file). -//go:generate -command genxdr go run ../../syncthing/Godeps/_workspace/src/github.com/calmh/xdr/cmd/genxdr/main.go +//go:generate -command genxdr go run ../../../Godeps/_workspace/src/github.com/calmh/xdr/cmd/genxdr/main.go //go:generate genxdr -o packets_xdr.go packets.go package protocol