idup-check: Print hashes of corrupt blocks - 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 fb016d2858d1d77359c56f4d67070fc8386879b6 /scm/dedup/commit/fb016d2858d1d77359c56f4d67070fc8386879b6.gph bitreich.org 70 1parent bfcf7e2d112888bb42b40e2d25211edc7375f8c5 /scm/dedup/commit/bfcf7e2d112888bb42b40e2d25211edc7375f8c5.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sun, 5 May 2019 20:56:51 +0100 Err bitreich.org 70 i Err bitreich.org 70 idup-check: Print hashes of corrupt blocks Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dup-check.1 | 3 +++ Err bitreich.org 70 i M dup-check.c | 14 +++++++++++++- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 16 insertions(+), 1 deletion(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dup-check.1 b/dup-check.1 /scm/dedup/file/dup-check.1.gph bitreich.org 70 i@@ -19,6 +19,9 @@ This is done by recalculating the hash of Err bitreich.org 70 i all blocks contained in the snapshot and checking Err bitreich.org 70 i whether the recorded hash of each block matches the Err bitreich.org 70 i actual hash. Err bitreich.org 70 i+.sp Err bitreich.org 70 i+If a corrupt block is detected, the hash of the Err bitreich.org 70 i+block will be printed on standard output. Err bitreich.org 70 i .Sh OPTIONS Err bitreich.org 70 i .Bl -tag -width "-k keyfile" Err bitreich.org 70 i .It Fl k Ar keyfile Err bitreich.org 70 1diff --git a/dup-check.c b/dup-check.c /scm/dedup/file/dup-check.c.gph bitreich.org 70 i@@ -8,6 +8,8 @@ Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i Err bitreich.org 70 i+#include Err bitreich.org 70 i+ Err bitreich.org 70 i #include "arg.h" Err bitreich.org 70 i #include "block.h" Err bitreich.org 70 i #include "config.h" Err bitreich.org 70 i@@ -24,9 +26,19 @@ check(struct sctx *sctx, struct bctx *bctx) Err bitreich.org 70 i unsigned char md[MDSIZE]; Err bitreich.org 70 i int n; Err bitreich.org 70 i Err bitreich.org 70 i+ if (sodium_init() < 0) Err bitreich.org 70 i+ errx(1, "sodium_init: failed"); Err bitreich.org 70 i+ Err bitreich.org 70 i while ((n = sget(sctx, md)) == MDSIZE) { Err bitreich.org 70 i- if (bcheck(bctx, md) < 0) Err bitreich.org 70 i+ char mdstr[MDSIZE * 2 + 1]; Err bitreich.org 70 i+ int r; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if ((r = bcheck(bctx, md)) < 0) { Err bitreich.org 70 i berr("bcheck"); Err bitreich.org 70 i+ } else if (r > 0) { Err bitreich.org 70 i+ sodium_bin2hex(mdstr, sizeof(mdstr), md, MDSIZE); Err bitreich.org 70 i+ puts(mdstr); Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i if (n < 0) Err bitreich.org 70 i serr("sget"); Err bitreich.org 70 .