Mercurial > dovecot > core-2.2
changeset 18480:1c275f718758
lib: Added numpack_decode32()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 25 Apr 2015 11:22:39 +0300 |
parents | 008632bdfd2c |
children | 21a2ce6f8f37 |
files | src/lib/numpack.c src/lib/numpack.h |
diffstat | 2 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/numpack.c Fri Apr 24 16:03:51 2015 +0300 +++ b/src/lib/numpack.c Sat Apr 25 11:22:39 2015 +0300 @@ -41,3 +41,16 @@ *num_r = value; return 0; } + +int numpack_decode32(const uint8_t **p, const uint8_t *end, uint32_t *num_r) +{ + uint64_t num; + + if (numpack_decode(p, end, &num) < 0) + return -1; + if (num > 4294967295U) + return -1; + + *num_r = (uint32_t)num; + return 0; +}
--- a/src/lib/numpack.h Fri Apr 24 16:03:51 2015 +0300 +++ b/src/lib/numpack.h Sat Apr 25 11:22:39 2015 +0300 @@ -6,5 +6,6 @@ void numpack_encode(buffer_t *buf, uint64_t num); int numpack_decode(const uint8_t **p, const uint8_t *end, uint64_t *num_r); +int numpack_decode32(const uint8_t **p, const uint8_t *end, uint32_t *num_r); #endif