};
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,
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,
};