- ecode = next_in_hash(tdb, &tinfo, &key, NULL);
- if (ecode == TDB_SUCCESS) {
- return key;
+ return tdb->last_error = next_in_hash(tdb, &tinfo, key, NULL);
+}
+
+static int wipe_one(struct tdb_context *tdb,
+ TDB_DATA key, TDB_DATA data, enum TDB_ERROR *ecode)
+{
+ *ecode = tdb_delete(tdb, key);
+ return (*ecode != TDB_SUCCESS);
+}
+
+enum TDB_ERROR tdb_wipe_all(struct tdb_context *tdb)
+{
+ enum TDB_ERROR ecode;
+ int64_t count;
+
+ if (tdb->flags & TDB_VERSION1) {
+ if (tdb1_wipe_all(tdb) == -1)
+ return tdb->last_error;
+ return TDB_SUCCESS;