Output is uint32_t in native byte order.
****************************************************************************/
-static bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key,
- uint32_t *value)
+static int fetch_uint32_parser(TDB_DATA key, TDB_DATA data, void *private_data)
{
- TDB_DATA data;
-
- data = tdb_fetch(tdb, key);
- if (!data.dptr || data.dsize != sizeof(uint32_t)) {
- SAFE_FREE(data.dptr);
- return false;
+ if (data.dsize != sizeof(uint32_t)) {
+ return -1;
}
+ *((uint32_t *)private_data) = PULL_LE_U32(data.dptr, 0);
+ return 0;
+}
- *value = IVAL(data.dptr,0);
- SAFE_FREE(data.dptr);
- return true;
+static bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key,
+ uint32_t *value)
+{
+ int ret = tdb_parse_record(tdb, key, fetch_uint32_parser, value);
+ return ret;
}
/****************************************************************************