From d7fc7008af15a06496e5706cf123ca9725b01de7 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Sat, 27 Jun 2020 07:44:33 +0200 Subject: [PATCH] lib/protocol: Add BlocksHash to FileInfo string (#6802) --- lib/db/set_test.go | 10 ++++++++++ lib/protocol/bep_extensions.go | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/db/set_test.go b/lib/db/set_test.go index 0078887a9..ec0ef91cd 100644 --- a/lib/db/set_test.go +++ b/lib/db/set_test.go @@ -135,6 +135,12 @@ func setSequence(seq int64, files fileList) int64 { return seq } +func setBlocksHash(files fileList) { + for i, f := range files { + files[i].BlocksHash = protocol.BlocksHash(f.Blocks) + } +} + func TestGlobalSet(t *testing.T) { ldb := db.NewLowlevel(backend.OpenMemory()) defer ldb.Close() @@ -149,6 +155,7 @@ func TestGlobalSet(t *testing.T) { protocol.FileInfo{Name: "z", Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1000}}}, Blocks: genBlocks(8)}, } localSeq := setSequence(0, local0) + setBlocksHash(local0) local1 := fileList{ protocol.FileInfo{Name: "a", Sequence: 6, Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1000}}}, Blocks: genBlocks(1)}, protocol.FileInfo{Name: "b", Sequence: 7, Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1000}}}, Blocks: genBlocks(2)}, @@ -157,6 +164,7 @@ func TestGlobalSet(t *testing.T) { protocol.FileInfo{Name: "z", Sequence: 10, Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1001}}}, Deleted: true}, } setSequence(localSeq, local1) + setBlocksHash(local1) localTot := fileList{ local1[0], local1[1], @@ -171,11 +179,13 @@ func TestGlobalSet(t *testing.T) { protocol.FileInfo{Name: "c", Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1001}}}, Blocks: genBlocks(5)}, } remoteSeq := setSequence(0, remote0) + setBlocksHash(remote0) remote1 := fileList{ protocol.FileInfo{Name: "b", Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1001}}}, Blocks: genBlocks(6)}, protocol.FileInfo{Name: "e", Version: protocol.Vector{Counters: []protocol.Counter{{ID: myID, Value: 1000}}}, Blocks: genBlocks(7)}, } setSequence(remoteSeq, remote1) + setBlocksHash(remote1) remoteTot := fileList{ remote0[0], remote1[0], diff --git a/lib/protocol/bep_extensions.go b/lib/protocol/bep_extensions.go index ef691928f..f5add40ab 100644 --- a/lib/protocol/bep_extensions.go +++ b/lib/protocol/bep_extensions.go @@ -58,8 +58,8 @@ func (f FileInfo) String() string { return fmt.Sprintf("Directory{Name:%q, Sequence:%d, Permissions:0%o, ModTime:%v, Version:%v, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v}", f.Name, f.Sequence, f.Permissions, f.ModTime(), f.Version, f.Deleted, f.RawInvalid, f.LocalFlags, f.NoPermissions) case FileInfoTypeFile: - return fmt.Sprintf("File{Name:%q, Sequence:%d, Permissions:0%o, ModTime:%v, Version:%v, Length:%d, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v, BlockSize:%d, Blocks:%v}", - f.Name, f.Sequence, f.Permissions, f.ModTime(), f.Version, f.Size, f.Deleted, f.RawInvalid, f.LocalFlags, f.NoPermissions, f.RawBlockSize, f.Blocks) + return fmt.Sprintf("File{Name:%q, Sequence:%d, Permissions:0%o, ModTime:%v, Version:%v, Length:%d, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v, BlockSize:%d, Blocks:%v, BlocksHash:%x}", + f.Name, f.Sequence, f.Permissions, f.ModTime(), f.Version, f.Size, f.Deleted, f.RawInvalid, f.LocalFlags, f.NoPermissions, f.RawBlockSize, f.Blocks, f.BlocksHash) case FileInfoTypeSymlink, FileInfoTypeDeprecatedSymlinkDirectory, FileInfoTypeDeprecatedSymlinkFile: return fmt.Sprintf("Symlink{Name:%q, Type:%v, Sequence:%d, Version:%v, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v, SymlinkTarget:%q}", f.Name, f.Type, f.Sequence, f.Version, f.Deleted, f.RawInvalid, f.LocalFlags, f.NoPermissions, f.SymlinkTarget)