X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fverify.c;h=41fcff789919f1b60a0e888ad3598a8a21fb4e37;hb=8f7d929a9eaf15773fc0647204bdf5911001939f;hp=fbe48708e4289b8db6735a407f49ba72aab7da60;hpb=9bd0659477b3a1ebad90b46106f743d72689bbd3;p=wimlib diff --git a/src/verify.c b/src/verify.c index fbe48708..41fcff78 100644 --- a/src/verify.c +++ b/src/verify.c @@ -47,24 +47,24 @@ struct verify_blob_list_ctx { }; static int -end_verify_blob(struct blob_descriptor *blob, int status, void *_ctx) +verify_continue_blob(const struct blob_descriptor *blob, u64 offset, + const void *chunk, size_t size, void *_ctx) { struct verify_blob_list_ctx *ctx = _ctx; union wimlib_progress_info *progress = ctx->progress; - if (status) - return status; + if (offset + size == blob->size) + progress->verify_streams.completed_streams++; - progress->verify_streams.completed_streams++; - progress->verify_streams.completed_bytes += blob->size; + progress->verify_streams.completed_bytes += size; if (progress->verify_streams.completed_bytes >= ctx->next_progress) { - status = call_progress(ctx->progfunc, - WIMLIB_PROGRESS_MSG_VERIFY_STREAMS, - progress, ctx->progctx); - if (status) - return status; + int ret = call_progress(ctx->progfunc, + WIMLIB_PROGRESS_MSG_VERIFY_STREAMS, + progress, ctx->progctx); + if (ret) + return ret; set_next_progress(progress->verify_streams.completed_bytes, progress->verify_streams.total_bytes, @@ -98,7 +98,7 @@ wimlib_verify_wim(WIMStruct *wim, int verify_flags) struct verify_blob_list_ctx ctx; struct blob_descriptor *blob; struct read_blob_callbacks cbs = { - .end_blob = end_verify_blob, + .continue_blob = verify_continue_blob, .ctx = &ctx, };