From b7986801cd9b8333aa3c80f2a211491947d1a6aa Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Fri, 4 Sep 2020 09:10:11 +0200 Subject: [PATCH] cmd/stindex: Print more hashes and versions --- cmd/stindex/dump.go | 9 ++++++++- lib/db/structs.go | 4 ++-- lib/protocol/bep_extensions.go | 12 ++++++------ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cmd/stindex/dump.go b/cmd/stindex/dump.go index ad4faac6d..9ce234bd9 100644 --- a/cmd/stindex/dump.go +++ b/cmd/stindex/dump.go @@ -116,7 +116,14 @@ func dump(ldb backend.Backend) { fmt.Printf("[blocklistmap] F:%d H:%x N:%s\n", folder, hash, fileName) case db.KeyTypeVersion: - fmt.Printf("[version] H:%x\n", key[1:]) + fmt.Printf("[version] H:%x", key[1:]) + var v protocol.Vector + err := v.Unmarshal(it.Value()) + if err != nil { + fmt.Printf(" (invalid)\n") + } else { + fmt.Printf(" V:%v\n", v) + } default: fmt.Printf("[??? %d]\n %x\n %x\n", key[0], key, it.Value()) diff --git a/lib/db/structs.go b/lib/db/structs.go index 6af6821cc..ce4c8e428 100644 --- a/lib/db/structs.go +++ b/lib/db/structs.go @@ -199,7 +199,7 @@ func (vl VersionList) String() string { if i > 0 { b.WriteString(", ") } - fmt.Fprintf(&b, "{%v, {", v.Version) + fmt.Fprintf(&b, "{Version:%v, Deleted:%v, Devices:{", v.Version, v.Deleted) for j, dev := range v.Devices { if j > 0 { b.WriteString(", ") @@ -207,7 +207,7 @@ func (vl VersionList) String() string { copy(id[:], dev) fmt.Fprint(&b, id.Short()) } - b.WriteString("}, {") + b.WriteString("}, Invalid:{") for j, dev := range v.InvalidDevices { if j > 0 { b.WriteString(", ") diff --git a/lib/protocol/bep_extensions.go b/lib/protocol/bep_extensions.go index 1d0500c4d..faf64db01 100644 --- a/lib/protocol/bep_extensions.go +++ b/lib/protocol/bep_extensions.go @@ -52,14 +52,14 @@ func (m Hello) Magic() uint32 { func (f FileInfo) String() string { switch f.Type { case FileInfoTypeDirectory: - 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) + return fmt.Sprintf("Directory{Name:%q, Sequence:%d, Permissions:0%o, ModTime:%v, Version:%v, VersionHash:%x, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v}", + f.Name, f.Sequence, f.Permissions, f.ModTime(), f.Version, f.VersionHash, 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, 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) + return fmt.Sprintf("File{Name:%q, Sequence:%d, Permissions:0%o, ModTime:%v, Version:%v, VersionHash:%x, 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.VersionHash, 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) + return fmt.Sprintf("Symlink{Name:%q, Type:%v, Sequence:%d, Version:%v, VersionHash:%x, Deleted:%v, Invalid:%v, LocalFlags:0x%x, NoPermissions:%v, SymlinkTarget:%q}", + f.Name, f.Type, f.Sequence, f.Version, f.VersionHash, f.Deleted, f.RawInvalid, f.LocalFlags, f.NoPermissions, f.SymlinkTarget) default: panic("mystery file type detected") }