Add the ecode arg to all the log functions, and log it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
#if BUILD_TDB2
static void ltdb_log_fn(struct tdb_context *tdb,
enum tdb_log_level level,
+ enum TDB_ERROR ecode,
const char *message,
struct ldb_context *ldb)
{
ldb_level = LDB_DEBUG_FATAL;
}
- ldb_debug(ldb, ldb_level, "ltdb: tdb(%s): %s", name, message);
+ ldb_debug(ldb, ldb_level, "ltdb: tdb(%s): %s: %s", name,
+ tdb_errorstr(ecode), message);
}
#else /* !TDB2 */
static void ltdb_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4);
static void stderr_log(struct tdb_context *tdb,
enum tdb_log_level level,
+ enum TDB_ERROR ecode,
const char *message,
void *data)
{
- fprintf(stderr, "%s:%s\n", tdb_name(tdb), message);
+ fprintf(stderr, "%s:%s:%s\n",
+ tdb_name(tdb), tdb_errorstr(ecode), message);
}
static PyObject *py_tdb_open(PyTypeObject *type, PyObject *args, PyObject *kwargs)
int tdb_flags, int open_flags, mode_t mode,
void (*log_fn)(struct tdb_context *,
enum tdb_log_level,
+ enum TDB_ERROR,
const char *message,
void *data),
void *log_data)
(log_fn), (log_data), \
struct tdb_context *, \
enum tdb_log_level, \
+ enum TDB_ERROR, \
const char *), \
(log_data))
int tdb_flags, int open_flags, mode_t mode,
void (*log_fn)(struct tdb_context *,
enum tdb_log_level,
+ enum TDB_ERROR ecode,
const char *message,
void *data),
void *log_data);
#if BUILD_TDB2
static void tdb_wrap_log(struct tdb_context *tdb,
enum tdb_log_level level,
+ enum TDB_ERROR ecode,
const char *message,
void *unused)
{
dl = 0;
}
- DEBUG(dl, ("tdb(%s): %s", name ? name : "unnamed", message));
+ DEBUG(dl, ("tdb(%s):%s: %s", name ? name : "unnamed",
+ tdb_errorstr(ecode), message));
}
#else
/*
#ifdef BUILD_TDB2
static void tdb_log(TDB_CONTEXT *tdb, enum tdb_log_level level,
- const char *message, void *unused)
+ enum TDB_ERROR ecode, const char *message, void *unused)
{
- DEBUG((int)level, ("tdb(%s): %s",
- tdb_name(tdb) ? tdb_name(tdb) : "unnamed", message));
+ DEBUG((int)level, ("tdb(%s):%s: %s",
+ tdb_name(tdb) ? tdb_name(tdb) : "unnamed",
+ tdb_errorstr(ecode), message));
}
#else
static void tdb_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, const char *format, ...)