diff options
Diffstat (limited to 'src/erasurecode_helpers.c')
-rw-r--r-- | src/erasurecode_helpers.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/erasurecode_helpers.c b/src/erasurecode_helpers.c index e07e02a..2f97b17 100644 --- a/src/erasurecode_helpers.c +++ b/src/erasurecode_helpers.c @@ -31,10 +31,23 @@ #include "erasurecode_backend.h" #include "erasurecode_helpers.h" #include "erasurecode_stdinc.h" +#include "erasurecode_version.h" #include "erasurecode/alg_sig.h" /* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */ +static bool is_valid_fragment(char *buf) +{ + fragment_header_t *header = (fragment_header_t *) buf; + + assert(NULL != header); + if (header->magic == LIBERASURECODE_FRAG_HEADER_MAGIC) { + return true; + } + + return false; +} + /** * Memory Management Methods * @@ -328,17 +341,21 @@ int get_orig_data_size(char *buf) return header->meta.orig_data_size; } -/* ==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~==~=*=~== */ - -int validate_fragment(char *buf) -{ +int set_libec_version(char *buf) { + if (!is_valid_fragment(buf)) { + return -1; + } fragment_header_t *header = (fragment_header_t *) buf; + header->libec_version = (uint32_t)LIBERASURECODE_VERSION; + return 0; +} - assert(NULL != header); - if (header->magic != LIBERASURECODE_FRAG_HEADER_MAGIC) { - return -1; +int get_libec_version(char *buf, uint32_t *ver) { + if (!is_valid_fragment(buf)) { + return -1; } - + fragment_header_t *header = (fragment_header_t *) buf; + *ver = header->libec_version; return 0; } |