mirror of
https://github.com/samba-team/samba.git
synced 2025-01-24 02:04:21 +03:00
added a tdb_open_log() function that opens a tdb and enables logging
of messages from the tdb code into the Samba DEBUG() system just call tdb_open_log() instead of tdb_open() to enable this on any tdb (This used to be commit 3ab770484c6775df2c1a6f69427ebe656702c96c)
This commit is contained in:
parent
aded7fc858
commit
964d7a6625
@ -56,7 +56,7 @@
|
||||
#define TDB_DEAD(r) ((r)->magic == TDB_DEAD_MAGIC)
|
||||
#define TDB_BAD_MAGIC(r) ((r)->magic != TDB_MAGIC && !TDB_DEAD(r))
|
||||
#define TDB_HASH_TOP(hash) (FREELIST_TOP + (BUCKET(hash)+1)*sizeof(tdb_off))
|
||||
#define TDB_LOG(x) (tdb->log_fn?tdb->log_fn x,0 : 0)
|
||||
#define TDB_LOG(x) (tdb->log_fn?((tdb->log_fn x),0) : 0)
|
||||
|
||||
/* lock offsets */
|
||||
#define GLOBAL_LOCK 0
|
||||
|
@ -321,3 +321,36 @@ int tdb_unpack(char *buf, int bufsize, char *fmt, ...)
|
||||
no_space:
|
||||
return -1;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
log tdb messages via DEBUG()
|
||||
****************************************************************************/
|
||||
static void tdb_log(TDB_CONTEXT *tdb, int level, const char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *ptr = NULL;
|
||||
|
||||
va_start(ap, format);
|
||||
vasprintf(&ptr, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (!ptr || !*ptr) return;
|
||||
|
||||
DEBUG(level, ("tdb(%s): %s", tdb->name, ptr));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* like tdb_open() but also setup a logging function that redirects to
|
||||
the samba DEBUG() system */
|
||||
TDB_CONTEXT *tdb_open_log(char *name, int hash_size, int tdb_flags,
|
||||
int open_flags, mode_t mode)
|
||||
{
|
||||
TDB_CONTEXT *tdb = tdb_open(name, hash_size, tdb_flags,
|
||||
open_flags, mode);
|
||||
if (!tdb) return NULL;
|
||||
|
||||
tdb_logging_function(tdb, tdb_log);
|
||||
|
||||
return tdb;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user