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