79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From 75d4ed800f297532a7b3ac2b8f8a94c049959e3b Mon Sep 17 00:00:00 2001
|
|
From: Michal Privoznik <mprivozn@redhat.com>
|
|
Date: Fri, 18 Dec 2020 16:09:08 +0100
|
|
Subject: [PATCH 024/108] leaseshelper: Report errors on failure
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
If leasehelper fails all that we are left with is a simple error
|
|
message produced by dnsmasq:
|
|
|
|
lease-init script returned exit code 1
|
|
|
|
This is because the leasehelper did not write any message to
|
|
stderr. According to dnsmasq's manpage, whenever it's invoking
|
|
leasehelper the stderr is kept open:
|
|
|
|
All file descriptors are closed except stdin, which is open to
|
|
/dev/null, and stdout and stderr which capture output for
|
|
logging by dnsmasq.
|
|
|
|
As debugging leasehelper is not trivial (because dnsmasq invokes
|
|
it with plenty of env vars set - that's how data is passed onto
|
|
helper), let's print an error into stderr if exiting with an
|
|
error. And since we are not calling public APIs, we have to call
|
|
virDispatchError() explicitly and since we don't have any
|
|
connection open, we have to pass NULL.
|
|
|
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
(cherry picked from commit c14bd64f3eba9838af8ab1cac369d51abfeb21b9)
|
|
---
|
|
src/network/leaseshelper.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/src/network/leaseshelper.c b/src/network/leaseshelper.c
|
|
index 2b5fc0f442..fdd7fd3e80 100644
|
|
--- a/src/network/leaseshelper.c
|
|
+++ b/src/network/leaseshelper.c
|
|
@@ -253,6 +253,8 @@ main(int argc, char **argv)
|
|
rv = EXIT_SUCCESS;
|
|
|
|
cleanup:
|
|
+ if (rv != EXIT_SUCCESS)
|
|
+ virDispatchError(NULL);
|
|
if (pid_file_fd != -1)
|
|
virPidFileReleasePath(pid_file, pid_file_fd);
|
|
|
|
--
|
|
2.33.0
|
|
|