From 4ab7995871d53634f14d788983659339dc936cba Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 19 Oct 2009 18:28:28 +0100 Subject: [PATCH] Fix duplicating logging of errors in libvirtd The libvirt default error handling callback will print all errors to stderr. The libvirtd default logging callback will do the same. Set a no-op error handling callback in libvirtd to prevent this duplication * daemon/libvirtd.c: Register a no-op error handling function --- daemon/libvirtd.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index c5f90b5266..0c97010684 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -776,6 +776,12 @@ static int qemudInitPaths(struct qemud_server *server, return ret; } +static void virshErrorHandler(void *opaque ATTRIBUTE_UNUSED, virErrorPtr err ATTRIBUTE_UNUSED) +{ + /* Don't do anything, since logging infrastructure already + * took care of reporting the error */ +} + static struct qemud_server *qemudInitialize(int sigread) { struct qemud_server *server; @@ -2995,6 +3001,9 @@ int main(int argc, char **argv) { if (remoteReadConfigFile (server, remote_config_file) < 0) goto error2; + /* Disable error func, now logging is setup */ + virSetErrorFunc(NULL, virshErrorHandler); + if (virEventAddHandleImpl(sigpipe[0], VIR_EVENT_HANDLE_READABLE, qemudDispatchSignalEvent, -- GitLab