From 2861390866bcbcd6abc0ecb4e07011ae5e9e4198 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Fri, 8 Jan 2010 12:08:06 -0500 Subject: [PATCH] util: Remove logging handlers in virExec This allows debug statements and raised errors in hook functions to actually be logged somewhere (stderr). Users can enable debugging in the daemon and now see more info in /var/log/libvirt/... --- src/util/util.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/util/util.c b/src/util/util.c index 44a4b2fffb..ba6b0dbbca 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -334,6 +334,7 @@ __virExec(virConnectPtr conn, int pipeerr[2] = {-1,-1}; int childout = -1; int childerr = -1; + int logprio; sigset_t oldmask, newmask; struct sigaction sig_action; @@ -452,6 +453,13 @@ __virExec(virConnectPtr conn, of being seen / logged */ virSetErrorFunc(NULL, NULL); + /* Make sure any hook logging is sent to stderr, since virExec will + * close any unknown FDs (including logging handlers) before launching + * the new process */ + logprio = virLogGetDefaultPriority(); + virLogReset(); + virLogSetDefaultPriority(logprio); + /* Clear out all signal handlers from parent so nothing unexpected can happen in our child once we unblock signals */