From da616772d8177fe063dfc54f94b498121791bd4d Mon Sep 17 00:00:00 2001 From: Jonathan Dieter Date: Tue, 13 Nov 2018 13:32:38 +0000 Subject: [PATCH] Switch from optional flags to optional elements Signed-off-by: Jonathan Dieter --- src/lib/header.c | 37 ++++++++++++++++++++----------------- src/lib/zck_private.h | 2 +- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/lib/header.c b/src/lib/header.c index cc402f2..38b587b 100644 --- a/src/lib/header.c +++ b/src/lib/header.c @@ -41,8 +41,8 @@ static bool check_flags(zckCtx *zck, size_t flags) { "This version of zchunk doesn't support streams"); return false; } - zck->has_optional_flags = flags & 2; - if(zck->has_optional_flags) + zck->has_optional_elems = flags & 2; + if(zck->has_optional_elems) flags -= 2; flags = flags & (SIZE_MAX - 1); if(flags != 0) { @@ -52,10 +52,9 @@ static bool check_flags(zckCtx *zck, size_t flags) { return true; } -static bool check_optional_flags(zckCtx *zck, size_t flags) { - flags = flags & (SIZE_MAX - 1); - if(flags != 0) - zck_log(ZCK_LOG_WARNING, "Unknown optional flags %i set", flags); +static bool read_optional_element(zckCtx *zck, size_t id, size_t data_size, + char *data) { + zck_log(ZCK_LOG_WARNING, "Unknown optional element id %i set", id); return true; } @@ -140,19 +139,23 @@ static bool read_preface(zckCtx *zck) { return false; /* Read optional flags */ - if(zck->has_optional_flags) { - size_t opt_flags = 0; - if(!compint_to_size(zck, &opt_flags, header+length, &length, - max_length)) - return false; - if(!check_optional_flags(zck, opt_flags)) - return false; - size_t opt_flag_data_size = 0; - if(!compint_to_size(zck, &opt_flag_data_size, header+length, &length, + if(zck->has_optional_elems) { + size_t opt_count = 0; + if(!compint_to_size(zck, &opt_count, header+length, &length, max_length)) return false; - if(opt_flag_data_size > 0) - length += opt_flag_data_size; + for(size_t i=0; i