iAdd magic field at the start of the storage header - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 6dea955869804c893de2c0cd1d2b0700d72fe8ea /scm/dedup/commit/6dea955869804c893de2c0cd1d2b0700d72fe8ea.gph bitreich.org 70 1parent 9f38b53149dd3486e39b02d571fa5dda7ba11f83 /scm/dedup/commit/9f38b53149dd3486e39b02d571fa5dda7ba11f83.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 25 Apr 2019 14:40:58 +0100 Err bitreich.org 70 i Err bitreich.org 70 iAdd magic field at the start of the storage header Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M bstorage.c | 14 +++++++++++--- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 11 insertions(+), 3 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/bstorage.c b/bstorage.c /scm/dedup/file/bstorage.c.gph bitreich.org 70 i@@ -37,9 +37,11 @@ Err bitreich.org 70 i #define CALGOSHIFT 16 Err bitreich.org 70 i #define CALGOMASK 0x7 Err bitreich.org 70 i Err bitreich.org 70 i+#define BHDRMAGIC "DEDUPDIDUPDIDUP" Err bitreich.org 70 i+#define NBHDRMAGIC sizeof(BHDRMAGIC) Err bitreich.org 70 i #define BDTYPE 0x100 Err bitreich.org 70 i Err bitreich.org 70 i-#define BHDRSIZE (8 + 8) Err bitreich.org 70 i+#define BHDRSIZE (NBHDRMAGIC + 8 + 8) Err bitreich.org 70 i #define BDSIZE (8 + 8 + 8 + (MDSIZE)) Err bitreich.org 70 i Err bitreich.org 70 i extern int pack(unsigned char *dst, char *fmt, ...); Err bitreich.org 70 i@@ -63,6 +65,7 @@ static struct bops bops = { Err bitreich.org 70 i Err bitreich.org 70 i /* Block header structure */ Err bitreich.org 70 i struct bhdr { Err bitreich.org 70 i+ char magic[NBHDRMAGIC]; Err bitreich.org 70 i uint64_t flags; Err bitreich.org 70 i uint64_t nent; Err bitreich.org 70 i }; Err bitreich.org 70 i@@ -174,11 +177,14 @@ unpackbhdr(int fd, struct bhdr *bhdr) Err bitreich.org 70 i if (xread(fd, buf, sizeof(buf)) != sizeof(buf)) Err bitreich.org 70 i return -1; Err bitreich.org 70 i Err bitreich.org 70 i- n = unpack(buf, "qq", Err bitreich.org 70 i+ n = unpack(buf, "'16qq", Err bitreich.org 70 i+ bhdr->magic, Err bitreich.org 70 i &bhdr->flags, Err bitreich.org 70 i &bhdr->nent); Err bitreich.org 70 i Err bitreich.org 70 i assert(n == sizeof(buf)); Err bitreich.org 70 i+ if (memcmp(bhdr->magic, BHDRMAGIC, NBHDRMAGIC) != 0) Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i return n; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -189,7 +195,8 @@ packbhdr(int fd, struct bhdr *bhdr) Err bitreich.org 70 i unsigned char buf[BHDRSIZE]; Err bitreich.org 70 i int n; Err bitreich.org 70 i Err bitreich.org 70 i- n = pack(buf, "qq", Err bitreich.org 70 i+ n = pack(buf, "'16qq", Err bitreich.org 70 i+ bhdr->magic, Err bitreich.org 70 i bhdr->flags, Err bitreich.org 70 i bhdr->nent); Err bitreich.org 70 i Err bitreich.org 70 i@@ -318,6 +325,7 @@ bscreat(struct bctx *bctx, char *path, int mode, struct bparam *bpar) Err bitreich.org 70 i sctx = bctx->sctx; Err bitreich.org 70 i RB_INIT(&sctx->bdcache); Err bitreich.org 70 i bhdr = &sctx->bhdr; Err bitreich.org 70 i+ memcpy(bhdr->magic, BHDRMAGIC, NBHDRMAGIC); Err bitreich.org 70 i bhdr->flags = (VMAJ << VMAJSHIFT) | VMIN; Err bitreich.org 70 i Err bitreich.org 70 i /* Set compression algorithm */ Err bitreich.org 70 .