summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2007-08-06 01:36:49 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:01:29 -0500
commitb351641c6ebcffd89c8e5e9cdae0f92528f12e05 (patch)
treed8c4d32a43827c0b6cd6c1a59566d3f4a563fc5a
parente87a0e5f69a8cfa3941643b17219ab34c541e47d (diff)
downloadsamba-b351641c6ebcffd89c8e5e9cdae0f92528f12e05.tar.gz
samba-b351641c6ebcffd89c8e5e9cdae0f92528f12e05.tar.bz2
samba-b351641c6ebcffd89c8e5e9cdae0f92528f12e05.zip
r24245: Fix bug #4828 - we need to set the samba LDB debug handler early, so
we catch messages pushed out by modules during startup. This also sets an explict mapping between ldb and Samba debug levels. Andrew Bartlett (This used to be commit 50913a401dda9fb29a8c05f1926c41d3473efa93)
-rw-r--r--source4/lib/db_wrap.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/source4/lib/db_wrap.c b/source4/lib/db_wrap.c
index 207d98f268..89ee0b16d2 100644
--- a/source4/lib/db_wrap.c
+++ b/source4/lib/db_wrap.c
@@ -47,13 +47,23 @@ static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
const char *fmt, va_list ap)
{
+ int samba_level;
char *s = NULL;
- if (DEBUGLEVEL < 4 && level > LDB_DEBUG_WARNING) {
- return;
- }
- if (DEBUGLEVEL < 2 && level > LDB_DEBUG_ERROR) {
- return;
- }
+ switch (level) {
+ case LDB_DEBUG_FATAL:
+ samba_level = 0;
+ break;
+ case LDB_DEBUG_ERROR:
+ samba_level = 1;
+ break;
+ case LDB_DEBUG_WARNING:
+ samba_level = 2;
+ break;
+ case LDB_DEBUG_TRACE:
+ samba_level = 5;
+ break;
+
+ };
vasprintf(&s, fmt, ap);
if (!s) return;
DEBUG(level, ("ldb: %s\n", s));
@@ -137,6 +147,10 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
return NULL;
}
+ ldb_set_debug(ldb, ldb_wrap_debug, NULL);
+
+ ldb_set_utf8_fns(ldb, NULL, wrap_casefold);
+
real_url = private_path(ldb, url);
if (real_url == NULL) {
talloc_free(ldb);
@@ -159,10 +173,6 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
return NULL;
}
- ldb_set_debug(ldb, ldb_wrap_debug, NULL);
-
- ldb_set_utf8_fns(ldb, NULL, wrap_casefold);
-
/* setup for leak detection */
ldb_set_opaque(ldb, "wrap_url", real_url);
startup_blocks = talloc(ldb, size_t);