summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-05-28 14:41:00 -0400
committerSimo Sorce <ssorce@redhat.com>2009-05-28 15:41:04 -0400
commit181f25a1fb70d47490c1b82e9e968f77e2fab019 (patch)
treeeefa3942329c0459c4aa5e95fa0b467bd503d109
parent553b185f1c765855fe5f5ce9b29533261f80fcba (diff)
downloadsssd-181f25a1fb70d47490c1b82e9e968f77e2fab019.tar.gz
sssd-181f25a1fb70d47490c1b82e9e968f77e2fab019.tar.xz
sssd-181f25a1fb70d47490c1b82e9e968f77e2fab019.zip
Suppress "rootdse" error messages.
We will trap all LDB debug messages and pipe them into our internal DEBUG() function. LDB FATAL messages will still be printed by default, WARNING and TRACE functions will be at debug level 3 and 9, respectively.
-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 0c30d4722..c13347353 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 7a4731863..a86a966b3 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 1398f800f..f7f89f5c7 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 b3a7c7270..d328f3aec 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,