From caa5c0a16b8675fc481a12fc2dd3538726370c6d Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Sat, 4 Apr 2020 20:10:53 +0200 Subject: [PATCH] backup: Add the version to the FileBackend format --- backup/backup.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backup/backup.py b/backup/backup.py index b39b81e..c64fdcc 100755 --- a/backup/backup.py +++ b/backup/backup.py @@ -128,19 +128,21 @@ class FileBackend(Backend): def add_change(self, entry: Change) -> bool: typ = b'\x01' if entry.snapshot is None else b'\x02' if typ == b'\x01': - payload = b'\x00'.join([t.encode('ASCII') for t in entry.transaction]) + payload = b'\x00'.join([t.encode('UTF-8') for t in entry.transaction]) elif typ == b'\x02': payload = entry.snapshot length = struct.pack("!I", len(payload)) + version = struct.pack("!I", entry.version) with open(self.url.path, 'ab') as f: f.seek(self.offsets[0]) f.write(length) + f.write(version) f.write(typ) f.write(payload) self.prev_version, self.offsets[1] = self.version, self.offsets[0] self.version = entry.version - self.offsets[0] += 5 + len(payload) + self.offsets[0] += 9 + len(payload) self.write_metadata() return True