summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/confdb/confdb.c6
-rw-r--r--server/db/sysdb.c6
-rw-r--r--server/util/debug.c24
-rw-r--r--server/util/util.h5
4 files changed, 41 insertions, 0 deletions
diff --git a/server/confdb/confdb.c b/server/confdb/confdb.c
index 0c30d472..c1334735 100644
--- a/server/confdb/confdb.c
+++ b/server/confdb/confdb.c
@@ -660,6 +660,12 @@ int confdb_init(TALLOC_CTX *mem_ctx,
talloc_free(cdb);
return EIO;
}
+ ret = ldb_set_debug(cdb->ldb, ldb_debug_messages, NULL);
+ if (ret != LDB_SUCCESS) {
+ DEBUG(0,("Could not set up debug fn.\n"));
+ talloc_free(cdb);
+ return EIO;
+ }
*cdb_ctx = cdb;
diff --git a/server/db/sysdb.c b/server/db/sysdb.c
index 7a473186..a86a966b 100644
--- a/server/db/sysdb.c
+++ b/server/db/sysdb.c
@@ -334,6 +334,12 @@ int sysdb_init(TALLOC_CTX *mem_ctx,
return EIO;
}
+ ret = ldb_set_debug(ctx->ldb, ldb_debug_messages, NULL);
+ if (ret != LDB_SUCCESS) {
+ talloc_free(ctx);
+ return EIO;
+ }
+
ret = ldb_connect(ctx->ldb, ctx->ldb_file, 0, NULL);
if (ret != LDB_SUCCESS) {
talloc_free(ctx);
diff --git a/server/util/debug.c b/server/util/debug.c
index 1398f800..f7f89f5c 100644
--- a/server/util/debug.c
+++ b/server/util/debug.c
@@ -3,6 +3,8 @@
#include <stdarg.h>
#include <stdlib.h>
+#include "util/util.h"
+
const char *debug_prg_name = "sssd";
int debug_level = 0;
@@ -19,3 +21,25 @@ void debug_fn(const char *format, ...)
fprintf(stderr, s);
free(s);
}
+
+void ldb_debug_messages(void *context, enum ldb_debug_level level,
+ const char *fmt, va_list ap)
+{
+ int loglevel = -1;
+ switch(level) {
+ case LDB_DEBUG_FATAL:
+ loglevel = 0;
+ break;
+ case LDB_DEBUG_ERROR:
+ loglevel = 1;
+ break;
+ case LDB_DEBUG_WARNING:
+ loglevel = 3;
+ break;
+ case LDB_DEBUG_TRACE:
+ loglevel = 9;
+ break;
+ }
+
+ DEBUG(loglevel, (fmt, ap));
+}
diff --git a/server/util/util.h b/server/util/util.h
index b3a7c727..d328f3ae 100644
--- a/server/util/util.h
+++ b/server/util/util.h
@@ -11,6 +11,7 @@
#include "config.h"
#include "talloc.h"
#include "tevent.h"
+#include "ldb.h"
extern const char *debug_prg_name;
extern int debug_level;
@@ -54,6 +55,10 @@ struct main_context {
#include "util/dlinklist.h"
+/* From debug.c */
+void ldb_debug_messages(void *context, enum ldb_debug_level level,
+ const char *fmt, va_list ap);
+
/* from server.c */
int server_setup(const char *name, int flags,
const char *conf_entry,