+
+#ifdef TDB_TRACE
+#include <stdarg.h>
+
+void tdb_trace(const struct tdb_context *tdb, const char *fmt, ...)
+{
+ char msg[256];
+ va_list args;
+ int len, err;
+
+ va_start(args, fmt);
+ len = vsprintf(msg, fmt, args);
+ va_end(args);
+
+ err = write(tdb->tracefd, msg, len);
+}
+
+void tdb_trace_record(const struct tdb_context *tdb, TDB_DATA rec)
+{
+ char msg[20];
+ unsigned int i;
+ int err;
+
+ err = write(tdb->tracefd, msg, sprintf(msg, "%zu:", rec.dsize));
+ for (i = 0; i < rec.dsize; i++)
+ err += write(tdb->tracefd, msg, sprintf(msg, "%02x",
+ rec.dptr[i]));
+ err += write(tdb->tracefd, " ", 1);
+}
+#endif