X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fresource.c;h=fb5761d9e68ba60cf7bbf262efb4ce0e303ad5a1;hb=3b05052885168a50852b86609a89f29d1c0c6d97;hp=300aec8f1cbec29e0b919bba8243984e7e518271;hpb=9e5404f2c773173ebaae519d7ebacb2d802b263f;p=wimlib diff --git a/src/resource.c b/src/resource.c index 300aec8f..fb5761d9 100644 --- a/src/resource.c +++ b/src/resource.c @@ -7,26 +7,24 @@ /* * Copyright (C) 2012, 2013 Eric Biggers * - * This file is part of wimlib, a library for working with WIM files. + * This file is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 3 of the License, or (at your option) any + * later version. * - * wimlib is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 3 of the License, or (at your option) any later - * version. + * This file is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. * - * wimlib is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * wimlib; if not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU Lesser General Public License + * along with this file; if not, see http://www.gnu.org/licenses/. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif -#include "wimlib.h" #include "wimlib/assert.h" #include "wimlib/endianness.h" #include "wimlib/error.h" @@ -207,7 +205,7 @@ read_compressed_wim_resource(const struct wim_resource_spec * const rspec, rspec->wim->decompressor_ctype = WIMLIB_COMPRESSION_TYPE_NONE; rspec->wim->decompressor = NULL; } else { - ret = wimlib_create_decompressor(ctype, chunk_size, NULL, + ret = wimlib_create_decompressor(ctype, chunk_size, &decompressor); if (ret) { if (ret != WIMLIB_ERR_NOMEM) @@ -1017,17 +1015,12 @@ streamifier_cb(const void *chunk, size_t size, void *_ctx) wimlib_assert(size <= ctx->cur_stream->size - ctx->cur_stream_offset); if (ctx->cur_stream_offset == 0) { - u32 flags; /* Starting a new stream. */ DEBUG("Begin new stream (size=%"PRIu64").", ctx->cur_stream->size); - flags = BEGIN_STREAM_FLAG_PARTIAL_RESOURCE; - if (size == ctx->cur_stream->size) - flags |= BEGIN_STREAM_FLAG_WHOLE_STREAM; ret = (*ctx->cbs.begin_stream)(ctx->cur_stream, - flags, ctx->cbs.begin_stream_ctx); if (ret) return ret; @@ -1073,8 +1066,7 @@ struct hasher_context { /* Callback for starting to read a stream while calculating its SHA1 message * digest. */ static int -hasher_begin_stream(struct wim_lookup_table_entry *lte, u32 flags, - void *_ctx) +hasher_begin_stream(struct wim_lookup_table_entry *lte, void *_ctx) { struct hasher_context *ctx = _ctx; @@ -1083,8 +1075,7 @@ hasher_begin_stream(struct wim_lookup_table_entry *lte, u32 flags, if (ctx->cbs.begin_stream == NULL) return 0; else - return (*ctx->cbs.begin_stream)(lte, flags, - ctx->cbs.begin_stream_ctx); + return (*ctx->cbs.begin_stream)(lte, ctx->cbs.begin_stream_ctx); } /* A consume_data_callback_t implementation that continues calculating the SHA1 @@ -1103,13 +1094,6 @@ hasher_consume_chunk(const void *chunk, size_t size, void *_ctx) return (*ctx->cbs.consume_chunk)(chunk, size, ctx->cbs.consume_chunk_ctx); } -static void -get_sha1_string(const u8 md[SHA1_HASH_SIZE], tchar *str) -{ - for (size_t i = 0; i < SHA1_HASH_SIZE; i++) - str += tsprintf(str, T("%02x"), md[i]); -} - /* Callback for finishing reading a stream while calculating its SHA1 message * digest. */ static int @@ -1144,8 +1128,8 @@ hasher_end_stream(struct wim_lookup_table_entry *lte, int status, void *_ctx) if (wimlib_print_errors) { tchar expected_hashstr[SHA1_HASH_SIZE * 2 + 1]; tchar actual_hashstr[SHA1_HASH_SIZE * 2 + 1]; - get_sha1_string(lte->hash, expected_hashstr); - get_sha1_string(hash, actual_hashstr); + sprint_hash(lte->hash, expected_hashstr); + sprint_hash(hash, actual_hashstr); ERROR("The stream is corrupted!\n" " (Expected SHA1=%"TS",\n" " got SHA1=%"TS")", @@ -1173,7 +1157,7 @@ read_full_stream_with_cbs(struct wim_lookup_table_entry *lte, { int ret; - ret = (*cbs->begin_stream)(lte, 0, cbs->begin_stream_ctx); + ret = (*cbs->begin_stream)(lte, cbs->begin_stream_ctx); if (ret) return ret; @@ -1444,7 +1428,7 @@ extract_stream(struct wim_lookup_table_entry *lte, u64 size, /* A consume_data_callback_t implementation that writes the chunk of data to a * file descriptor. */ -int +static int extract_chunk_to_fd(const void *chunk, size_t size, void *_fd_p) { struct filedes *fd = _fd_p;